前言:
docker 在安裝後,主要分成 docker (client) 和 dockerd (server) 兩種,安裝後預設 dockerd 是不對外開放的,如果要讓外部電腦可以遠端操作,需要設定 daemon.json 這個檔案,這邊設定檔,路徑部分以 Windows 為主,在 linux 上套用自行變通一下即可
dockerd (server) 設定:
daemon.json 預設路徑:
widnows: C:\ProgramData\docker\config\daemon.json
linux: /etc/docker/daemon.json
注意事項:daemon.json 需要使用 UTF-8 without BOM 的格式(尤其是在 widnows 上),不然 dockerd 啟動時會報錯
daemon.json 基本範例 (Windows 路徑反斜線需重複一次):
{ "hosts": ["tcp://0.0.0.0:2376", "npipe://"], "tlsverify": true, "tlscacert": "C:\\ProgramData\\docker\\cert\\ca.pem", "tlscert": "C:\\ProgramData\\docker\\cert\\cert.pem", "tlskey": "C:\\ProgramData\\docker\\cert\\key.pem" }
注意事項:docker port 2376/tcp 預設為加密連線的連接埠,如果要使用非加密連線(不建議),請使用 2375
docker (client) 安裝:
Windows:
Window 這邊有三種方法取得 docker
1. 從 https://download.docker.com/components/engine/windows-server/index.json 上取得下載清單,然後下載下來用
2. 透過 chocolatey 安裝 docker-cli
3. 從 dockerd (server) 主機上複製 docker 下來用
注意事項:記得要複製相關的 dll (libwinpthread-1.dll、ssleay32.dll、libeay32.dll),安裝 VC++ 環境
Ubuntu:
從 https://github.com/docker/cli 抓下來自行編譯
docker (client) 設定:
需要設定以下環境變數:
DOCKER_HOST="tcp://<Docker server IP 位置>:2376"
DOCKER_TLS_VERIFY="1"
DOCKER_CERT_PATH="C:\Users\<使用者>\.docker"
注意事項:需複製伺服器上的憑證給 client 用,不是兩邊各自產生憑證
關於憑證產生方式,可以參考下面方法(在 widnows 下,可以使用 cmder 內建的 openssl):
參考資料: