Ubuntu 22.04 上安装 Docker并使用国内源(20250108测试有效/已失效)

Ubuntu 22.04 上安装 Docker 需要几个步骤。以下是一个详细的指南,包括所有必要的命令和解释:

1. 更新软件包索引:

这是安装任何新软件包前的最佳实践,确保你拥有最新的软件包信息。

sudo apt update

2. 安装必要的软件包以允许 apt 通过 HTTPS 使用仓库:

这些软件包允许你的系统安全地连接到 Docker 的仓库并下载软件包。

sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release
apt-transport-https: 允许 apt 使用 HTTPS 协议。
ca-certificates: 包含信任的证书颁发机构 (CA) 的证书。
curl: 一个用于传输数据的命令行工具。
gnupg: GNU Privacy Guard,用于安全地导入 Docker 的 GPG 密钥。
lsb-release: 提供关于 Linux 发行版的信息。

3. 添加 Docker 的官方 GPG 密钥:

GPG 密钥用于验证下载的 Docker 软件包的完整性和真实性。

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo mkdir -p /etc/apt/keyrings: 如果 /etc/apt/keyrings 目录不存在,则创建它。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg: 从 Docker 官方网站下载 GPG 密钥。
    -f: 如果服务器报告错误则退出。
    -s: 静默模式 (不显示进度条和错误消息)。
    -S: 显示错误消息。
    -L: 如果服务器返回重定向,则跟随重定向。

sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg: 将下载的 ASCII 格式的 GPG 密钥转换为二进制格式并保存到 /etc/apt/keyrings/docker.gpg。

4. 设置 Docker 仓库:

你需要将 Docker 的仓库添加到你的 apt 源列表中,这样 apt 才能找到 Docker 软件包。

echo \
  "deb [arch=(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
ARCH=(dpkg --print-architecture) 和 RELEASE=(lsb_release -cs): 首先,将 dpkg --print-architecture 和 lsb_release -cs 命令的输出分别存储在 ARCH 和 RELEASE 变量中。
"deb [arch=$ARCH signed-by=/etc/apt/keyrings/docker.gpg] ...": 然后在字符串中使用变量替换。 在双引号字符串中,变量会被 shell 展开。
为什么有效: 这种方法将子shell的执行与字符串的生成分离开,从而避免了在管道或 tee 命令中进行复杂的 shell 扩展问题。 这是最安全和最可读的方法。

5. 再次更新软件包索引:

现在你的 apt 源列表中包含了 Docker 的仓库,需要更新软件包索引来获取新的软件包信息。

sudo apt update

6. 安装 Docker Engine:

现在你可以安装 Docker Engine、Containerd 和 Docker Compose 插件。

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
docker-ce: Docker Community Edition,即 Docker Engine。
docker-ce-cli: 用于与 Docker Engine 交互的命令行工具。
containerd.io: 一个行业标准的容器运行时。
docker-compose-plugin: 用于定义和运行多容器 Docker 应用程序的工具 (作为 Docker CLI 的插件存在)。

6.5 修改为国内可用源(20250107测试可用)

如需代理加上 proxies

# cat /etc/docker/daemon.json 
{
   "registry-mirrors": [
  "https://docker.m.daocloud.io",
  "http://mirrors.ustc.edu.cn",
  "http://mirror.azure.cn"
   ],
   "proxies": {
           "http-proxy": "http://127.0.0.1:8080",
           "https-proxy": "http://127.0.0.1:8080"
      }

 }

sudo systemctl daemon-reload
sudo systemctl restart docker

7. 验证 Docker 是否安装成功:

安装完成后,可以运行以下命令来检查 Docker 是否已正确安装并正在运行。

sudo systemctl status docker

你应该看到类似以下的输出,表明 Docker 服务正在运行 (active (running)):

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-10-24 10:00:00 UTC; 1min 30s ago
       Docs: https://docs.docker.com
   Main PID: 1234 (dockerd)
      Tasks: 50
     Memory: 100.0M
        CPU: 1.500s
     CGroup: /system.slice/docker.service
             └─1234 /usr/bin/dockerd -H fd://

你也可以运行一个简单的 Docker 镜像来验证安装:

sudo docker run hello-world

如果一切正常,你应该看到一条欢迎消息,表明 Docker 已经正确安装并正在运行。

8. (可选)将你的用户添加到 docker 组,以便无需 sudo 运行 Docker 命令:

默认情况下,你需要使用 sudo 来运行 Docker 命令。为了避免这种情况,你可以将你的用户添加到 docker 组。

sudo usermod -aG docker $USER
newgrp docker
sudo usermod -aG docker USER: 将当前用户 (USER) 添加到 docker 组。
newgrp docker: 使组更改立即生效,无需注销并重新登录。

重要提示: 将用户添加到 docker 组会赋予该用户 root 权限,因为他们可以控制 Docker 守护进程。请谨慎操作。

9. Docker Compose (如果需要):

你已经安装了 Docker Compose 插件,它可以通过 docker compose 命令来使用。 你可以创建一个 docker-compose.yml 文件来定义你的多容器应用程序。

例如,创建一个简单的 docker-compose.yml 文件:

version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

然后,在该文件所在的目录中运行:

docker compose up -d

这将启动一个运行 Nginx 的容器。

常用 Docker 命令:

docker ps: 列出正在运行的容器。
docker images: 列出本地可用的镜像。
docker pull <image_name>: 从 Docker Hub 下载镜像。
docker stop <container_id>: 停止一个正在运行的容器。
docker rm <container_id>: 删除一个已停止的容器。

总结:

以上就是在 Ubuntu 22.04 上安装 Docker 的详细步骤。按照这些步骤操作,你应该能够成功安装并运行 Docker。记得阅读 Docker 的官方文档以了解更多关于 Docker 的功能和用法。

Ubuntu 22.04 上安装 Docker并使用国内源(20250108测试有效/已失效)
Scroll to top