![](/img/trans.png)
[英]How can I send command line options to my dockerized program that I start with “docker-compose up”?
[英]how can I configure the default admin user:password with docker if i am launching docker-compose up of a docker(portainer in my case)?
我正在尝试创建一个 docker-compose,它设置了一个巨大的 docker 环境,以 portainer 作为经理。
问题是当用户第一次使用“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"
Portainer 允许您从命令行为管理员帐户指定加密密码。 您需要为密码生成哈希值。
例如,这是密码的哈希值 - $$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-password此标志用于指定 Portainer 中的加密密码。
更多信息可以在文档中找到 - Portainer
希望这会帮助你。
您需要使用另一个$
对散列密码中的每个$
字符进行转义:
$2y$05$ZBq/6oanDzs3iwkhQCxF2uKoJsGXA0SI4jdu1PkFrnsKfpCH5Ae4G
到
$$2y$$05$$ZBq/6oanDzs3iwkhQCxF2uKoJsGXA0SI4jdu1PkFrnsKfpCH5Ae4G
您只能为容器的第一次运行设置管理员密码。 使用此存储库:
按照 Mohsen 的说法,您必须运行docker-compose down
,每次需要重新启动并初始化新的管理员密码时,如果您还想删除卷,请使用选项-v
。
https://github.com/portiner/portiner/issues/1506#issuecomment-352273682
在后面的情况下,docker-compose.yml 文件中的使用version: '3.3'
是强制性的。
我直接在 Dockerfile 上设置了管理员密码!
$ cat <<EOF > portainer-pass.sh
#!/usr/bin/env bash
if [ -z "\$1" ]; then
echo -e "\\nPlease call '\$0 <password>' to run this command!\\n"
exit 1
fi
htpasswd -nb -B admin \$1 | cut -d ":" -f 2
EOF
chmod u+x portainer-pass.sh
./portainer-pass.sh c7e694055489cb2051195a2be1740992
输出: $2y$05$bGljp9ThZkfNaZuKvDUB3uKpXecI5SDZ6s6Xga8azv4JQUDXmHV82
# Set fixed portainer image
FROM portainer/portainer-ce:latest
# Set default admin password at startup
CMD ["--admin-password", "$2y$05$bGljp9ThZkfNaZuKvDUB3uKpXecI5SDZ6s6Xga8azv4JQUDXmHV82"]
# Default portainer web port
EXPOSE 9443
在这里,您不需要将$
替换为$$
!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.