作者:IvanCodes
日期:2025年7月7日
專欄:Docker教程
在前一篇文章中,我們了解了 Docker 的歷史、能做什么以及核心概念 (鏡像、容器、倉庫)。現在,我們將更進一步,深入探究 Docker 中最常用也最核心的命令——docker run
——其背后的工作流程與原理。同時,我們還將詳細介紹如何在Linux系統上安裝部署 Docker,并配置鏡像加速器以提升鏡像拉取速度。
一、docker run
的神奇之旅:從一條命令到一個運行中的容器
當你在終端中敲下 docker run
命令時,比如 docker run -it ubuntu /bin/bash
,看似簡單的一行命令背后,Docker 引擎執行了一系列復雜而有序的操作。
二、在 Linux (以 CentOS/Ubuntu 為例) 上安裝部署 Docker
2.1 準備工作
- 系統要求:建議使用 64 位的 CentOS 7/8 或 Ubuntu 18.04/20.04/22.04 LTS 版本。
- 卸載舊版本:如果系統上安裝了舊的 Docker 版本,建議先卸載。
# 對于 CentOS
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 對于 Ubuntu
apt-get remove docker docker-engine docker.io containerd runc
2.2 安裝步驟
對于 CentOS:
- 安裝必要的工具:
yum install -y yum-utils
- 設置 Docker 的 yum 倉庫:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3. 安裝 Docker 引擎:
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4. 啟動并設置開機自啟:
systemctl start docker
systemctl enable docker
對于 Ubuntu:
1. 更新 apt 包索引并安裝依賴:
apt-get update
apt-get install -y ca-certificates curl gnupg
2. 添加 Docker 的官方 GPG 密鑰:
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
3. 設置 Docker 的 apt 倉庫:
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. 安裝 Docker 引擎:
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2.3 驗證安裝
運行經典的 hello-world
鏡像來驗證 Docker 是否安裝成功。
docker run hello-world
如果看到 “Hello from Docker!” 的歡迎信息,說明安裝成功!
三、配置 Docker 鏡像加速器
由于Docker Hub 的服務器在國外,直接拉取鏡像有時會非常緩慢。配置國內的鏡像加速器可以顯著提升下載速度。
常見的國內鏡像加速器提供商:
- 阿里云容器鏡像服務 (ACR)
- 網易云鏡像服務
- DaoCloud
- 騰訊云容器鏡像服務 (TCR)
配置步驟 (以通用方式為例):
1. 創建或修改 Docker 守護進程配置文件:
配置文件通常是 /etc/docker/daemon.json
。如果該文件不存在,請創建它。
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://<your-accelerator-url>"]
}
EOF
請將 https://<your-accelerator-url>
替換為你從加速器提供商獲取的專屬加速地址。
例如,使用網易云的加速器地址:
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF
如果你想配置多個加速器地址作為備份,可以換成下面的命令:
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://registry.docker-cn.com","https://mirror.tuna.tsinghua.edu.cn","https://mirror.ccs.tencentyun.com","http://hub-mirror.c.163.com"]
}
EOF
2. 重新加載配置并重啟 Docker 服務:
修改完配置文件后,必須讓 Docker Daemon 重新加載配置并重啟。
systemctl daemon-reload
systemctl restart docker
3. 驗證加速器是否生效:
執行 docker info
命令,在輸出信息中查找 Registry Mirrors
部分。
docker info
如果能看到你配置的加速器地址列表,說明配置成功。
到此,恭喜你配置成功!現在,當你再次執行 docker pull
或 docker run
一個本地不存在的鏡像時,Docker 會優先嘗試從配置的加速器拉取,你會感受到速度的明顯提升。