寫在前面
- docker作為一種部署項目的輔助工具,真是太好用了
- 需要魔法,不然無法正常運行
- 筆者環境:ubuntu22.04
具體步驟
-
更新系統包索引
sudo apt update
-
安裝必要依賴包
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
(注:
vim
和net-tools
為可選工具,非必須安裝) -
添加Docker官方GPG密鑰
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
-
添加Docker倉庫到APT源
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
-
更新APT并安裝Docker引擎
sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io
-
啟動Docker服務并設置開機自啟
sudo systemctl enable --now docker
如果不想開機自啟,就手動啟動
sudo systemctl start docker
檢查docker運行情況
sudo systemctl status docker
若輸出顯示 active (running),則表示服務在本地已正常運行
-
檢查Docker版本:
docker --version
輸出示例:
Docker version 24.0.0, build 12345678
-
配置docker網絡端口:
如果不對docker進行配置,那么docker的數據就不會從有魔法的端口過,而導致被墻,進一步導致docker部署失敗,表現如下:$ sudo docker run hello-world Unable to find image 'hello-world:latest' locally docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 130.211.15.150:443: connect: connection refused
具體配置如下:
- 創建 Docker daemon 的 systemd 配置目錄:
sudo mkdir -p /etc/systemd/system/docker.service.d
- 創建代理配置文件:
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
添加如下內容(請根據你實際使用的代理端口修改,這通常可以在你的軟件配置里找到,比如我這里是7897):
[Service] Environment="HTTP_PROXY=http://127.0.0.1:7897/" Environment="HTTPS_PROXY=http://127.0.0.1:7897/" Environment="NO_PROXY=localhost,127.0.0.1,::1"
- 重新加載并重啟 Docker:
sudo systemctl daemon-reexec sudo systemctl daemon-reload sudo systemctl restart docker
- 檢查配置是否生效
sudo systemctl show --property=Environment docker
如果看到你剛設置的
HTTP_PROXY
和HTTPS_PROXY
環境變量說明已經生效。
-
執行測試命令
sudo docker run hello-world
若輸出包含“Hello from Docker!”等歡迎信息,說明配置成功,已經可以進行下一步的開發了。
其他可選配置
- 若需非root用戶運行Docker,可將用戶加入
docker
組:
之后需重新登錄或重啟生效。sudo usermod -aG docker $USER