簡體   English   中英

如果我要啟動 docker-compose 的 docker(在我的情況下是 portainer),我該如何配置默認的管理員用戶:密碼與 docker?

[英]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 上設置了管理員密碼!

  1. 創建一個腳本來生成你的密碼:
$ 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
  1. 給予您的許可:
chmod u+x portainer-pass.sh
  1. 生成您的密碼:
./portainer-pass.sh c7e694055489cb2051195a2be1740992

輸出: $2y$05$bGljp9ThZkfNaZuKvDUB3uKpXecI5SDZ6s6Xga8azv4JQUDXmHV82

  1. 放入 Dockerfile 的“CMD”:
# 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM