![](/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.