CLI configuration options

Configuration flags available at the command line

Creating an admin account and password

The commands in this section will automatically create an administrator account called admin with the password you specify.

Method 1: Creating the account from the command line

You can specify a bcrypt-encrypted password from the command line for the admin account. If you have installed the apache2-utils package, create the password using the following command:

htpasswd -nb -B admin "your-password" | cut -d ":" -f 2

If your system does not have that command, use a container to run the command instead:

docker run --rm httpd:2.4-alpine htpasswd -nbB admin "your-password" | cut -d ":" -f 2

Once the password has been created, specify the admin password from the command line by starting Portainer with the --admin-password flag:

docker run -d -p 9443:9443 -p 8000:8000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ee:latest --admin-password='$2y$05$8oz75U8m5tI/xT4P0NbSHeE7WyRzOWKRBprfGotwDkhBOGP/u802u'

Method 2: Creating the account using a file

You can also store a plain text password inside a file and use the --admin-password-file flag. First, add the password to a file using the following example command as a guide:

echo -n mypassword > /tmp/portainer_password

Next, start the Portainer container:

docker run -d -p 9443:9443 -p 8000:8000 -v /var/run/docker.sock:/var/run/docker.sock -v /tmp/portainer_password:/tmp/portainer_password portainer/portainer-ee:latest --admin-password-file /tmp/portainer_password

This also works well with Docker Swarm and Docker Secrets:

echo -n mypassword | docker secret create portainer-pass -
docker service create \
    --name portainer \
    --secret portainer-pass \
    --publish 9443:9443 \
    --publish 8000:8000 \
    --replicas=1 \
    --constraint 'node.role == manager' \
    --mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
    portainer/portainer-ee:latest \
    --admin-password-file '/run/secrets/portainer-pass' \
    -H unix:///var/run/docker.sock

Hiding specific containers

Portainer lets you hide containers with a specific label by using the -l flag. Here's an example showing a container labeled owner=acme:

docker run -d --label owner=acme nginx

To hide this container, when starting Portainer add the -l owner=acme option on the CLI:

docker run -d -p 9443:9443 -p 8000:8000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ee:latest -l owner=acme

To hide multiple containers, repeat the -l flag:

docker run -d -p 9443:9443 -p 8000:8000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ee:latest -l owner=acme -l service=secret

Images must be exactly 155px by 55px in size.

Replace our logo with your own using the --logo flag to specify the location of the image file:

docker run -d -p 9443:9443 -p 8000:8000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ee:latest --logo "https://www.docker.com/sites/all/themes/docker/assets/images/brand-full.svg"

You can also update the logo in the Portainer UI (Settings menu).

Defining your own app templates

We suggest hosting template files on GitHub so Portainer can access them without authentication.

Portainer allows you to rapidly deploy containers using app templates. By default, Portainer templates will be used but you can also define your own.

Templates are loaded once when Portainer is first started. If you already deployed a Portainer instance then decide to use your own templates, you’ll need to clear the default templates either in the user interface or through the HTTP API. Use the --templates flag to specify a URL where the template file can be accessed via HTTP.

docker run -d -p 9443:9443 -p 8000:8000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ee:latest --templates http://my-host.my-domain/templates.json

Last updated