在 Ubuntu 先裝了 Docker desktop ,Docker,發現遠端訪問及佈署的連接埠( 2375 port ) 怎麼調整,一直都跑不起來,將其全部移除後再裝。
在 Windows 的 Docker desktop 可以輕鬆勾選 Docker desktop的設定中 “Expose daemon on tcp://localhost:2375 without TLS” 來啟用2375 port來管理遠端的 Docker 伺服器,但在Linux 版本是沒有這個設定的,如果先裝了 Docker desktop 可能會遇到和我一樣找不到 dockerd 的狀況。
因為越來越多雲端服務都是採用 Linux 伺服器,且因為Linux 輕載又穩定的特性,也不需要特別高規格的電腦,因此將舊電腦,Intel 8700 + 1060 顯卡整理成做為實驗機,並在上面安裝了 Ubuntu 22.04.5 LTS,做為研究一些雲平台使用,為了方便管理,我裝了 Ubuntu Desktop ,並自己架了 Rust Destktop ,方便連線進去維護。
// 1. 更新系統的軟體 sudo apt update sudo apt upgrade // 2. 安裝必要的相依套件 sudo apt install -y apt-transport-https ca-certificates curl software-properties-common // 3. 加入 Docker 官方的 GPG 金鑰 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg // 4. 新增 Docker 的軟體庫 echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null // 5. 更新軟體包列表並安裝 Docker sudo apt remove --purge docker-ce docker-ce-cli containerd.io sudo apt install docker-ce docker-ce-cli containerd.io // 6. 檢查 Docker 是否安裝成功 sudo systemctl status docker sudo systemctl start docker sudo docker run hello-world
修改 Docker 的自動啟動設定
sudo vim /lib/systemd/system/docker.service
修改 ExecStart 這行,在後面加上 -H fd:// -H tcp://0.0.0.0:2375
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H fd:// -H tcp://0.0.0.0:2375
重新啟動
sudo systemctl daemon-reload // reload service sudo systemctl enable docker.service sudo systemctl restart docker.service sudo systemctl status docker.service
sudo ufw allow 2375
docker -H 192.168.50.50:2375 info docker -H 192.168.50.50:2375 ps
我做了一些實驗,發現透過 2375 端口指令建立的容器無法在 Docker Desktop 中看到。如果要使用 Docker Desktop,可能會與原本的 Docker 環境產生衝突。看來,Docker 和 Docker Desktop 不適合混合使用。