根據你的問題,以下是在中國大陸使用 Ubuntu 24.04 安裝 Docker CE 并解決拉取容器鏡像時出現的 `context deadline exceeded` 錯誤的詳細步驟:
### 1. 安裝 Docker CE
首先,確保你已經安裝了 Docker CE。如果尚未安裝,可以按照以下步驟進行安裝:
1. **更新系統包**:
```bash
sudo apt-get update
```
2. **安裝必要的包**:
```bash
sudo apt-get install -y ca-certificates curl gnupg-agent software-properties-common
```
3. **添加 Docker 的官方 GPG 密鑰**:
```bash
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
```
4. **設置 Docker 的 apt 倉庫**:
```bash
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee -a /etc/apt/sources.list.d/docker.list
```
5. **安裝 Docker CE**:
```bash
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
```
6. **驗證 Docker 是否安裝成功**:
```bash
sudo docker run hello-world
```
### 2. 配置國內鏡像源
由于國內網絡環境的限制,直接從 Docker Hub 拉取鏡像可能會遇到問題。建議使用國內的鏡像源來加速鏡像的拉取。
1. **編輯 Docker 配置文件**:
```bash
sudo vi /etc/docker/daemon.json
```
2. **添加國內鏡像源**:
在文件中添加以下內容(以阿里云鏡像源為例):
```json
{
"registry-mirrors": ["https://<你的阿里云加速器地址>.mirror.aliyuncs.com"]
}
```
如果你沒有阿里云賬號,可以使用其他公共鏡像源,例如:
```json
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
```
3. **保存文件并重啟 Docker 服務**:
```bash
sudo systemctl daemon-reload
sudo systemctl restart docker
```
### 3. 測試鏡像拉取
配置完成后,嘗試拉取一個鏡像來驗證配置是否生效:
```bash
sudo docker pull hello-world
```
如果一切正常,你應該能夠成功拉取 `hello-world` 鏡像并運行。
### 4. 檢查網絡連接
如果仍然遇到問題,可以嘗試以下步驟來檢查網絡連接:
1. **測試網絡連通性**:
```bash
ping registry-1.docker.io
```
2. **檢查 DNS 設置**:
確保你的 DNS 設置正確。可以嘗試更換為公共 DNS(如 8.8.8.8):
```bash
sudo vi /etc/resolv.conf
```
添加以下內容:
```plaintext
nameserver 8.8.8.8
nameserver 8.8.4.4
```
3. **檢查防火墻設置**:
確保防火墻沒有阻止 Docker 所需的端口(如 443):
```bash
sudo ufw status
```
### 5. 手動下載鏡像
如果以上方法仍然無法解決問題,可以嘗試手動下載鏡像并導入到 Docker 中:
1. **使用 Docker 下載鏡像**:
```bash
docker pull hello-world
```
2. **保存鏡像為 tar 文件**:
```bash
docker save hello-world > hello-world.tar
```
3. **導入鏡像到 Docker**:
```bash
docker load < hello-world.tar
```
4. **運行鏡像**:
```bash
docker run hello-world
```
通過以上步驟,你應該能夠解決在 Ubuntu 24.04 上安裝 Docker CE 并拉取容器鏡像時出現的 `context deadline exceeded` 錯誤。如果問題仍然存在,建議進一步檢查網絡配置或嘗試其他網絡環境。
浙公網安備 33010602011771號