如果我要启动docker-组成docker(在我的情况下是portainer),如何使用docker配置默认的admin user:password?

时间:2018-07-04 12:25:52

标签: docker docker-compose dockerfile portainer

我正在尝试创建一个docker-compose,以portainer作为管理员来设置一个巨大的docker环境。

问题在于,用户首次使用“ docker-compose up”并且开始运行portainer时,他必须导航至portainer Web界面(localhost:9000)并设置管理员用户和密码。

如何自动执行此步骤并使用我定义的默认用户创建一个portainer,所以当该用户第一次导航至portainer时,已经创建了admin用户。

这是我的docker-compose.yml

version: '3.3'

services:

  portainer:
    image: portainer/portainer
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./portainer/portainer_data:/data
    ports:
      - "9000:9000"

4 个答案:

答案 0 :(得分:1)

Portainer允许您从命令行为admin帐户指定加密的密码。您需要生成密码的哈希值。

例如,这是密码的哈希值-$$ 2y $$ 05 $$ arC5e4UbRPxfR68jaFnAAe1aL7C1U03pqfyQh49 / 9lB9lqFxLfBqS

在您的docker-compose文件中进行以下修改

version: '3.3'
 services:
   portainer:
    image: portainer/portainer
    volumes:
     - /var/run/docker.sock:/var/run/docker.sock
     - ./portainer/portainer_data:/data
    command: --admin-password "$$2y$$05$$arC5e4UbRPxfR68jaFnAAe1aL7C1U03pqfyQh49/9lB9lqFxLfBqS"
    ports:
     - "9000:9000"

-admin-密码。此标志用于在Portainer中指定加密密码。

更多信息可以在文档中找到-Portainer

希望这会对您有所帮助。

答案 1 :(得分:1)

您需要使用另一个 Microsoft.Data.Sqlite 对散列密码中的每个 $ 字符进行转义:

$

$2y$05$ZBq/6oanDzs3iwkhQCxF2uKoJsGXA0SI4jdu1PkFrnsKfpCH5Ae4G

答案 2 :(得分:0)

您只能为容器的第一次运行设置管理员密码。使用this repository

答案 3 :(得分:0)

按照 Mohsen 的说法,您必须运行 docker-compose down,每次需要重新启动并初始化新的管理员密码时,如果您还想删除卷,则使用选项 -v

https://github.com/portainer/portainer/issues/1506#issuecomment-352273682

在后面这种情况下,必须在 docker-compose.yml 文件中使用 version: '3.3'