Linux系统下Docker安装
1. 根据docker官方文档在安装Docker Engine之前需要先卸载旧版本,若无旧版本此步可跳过
python
执行此命令卸载冲突软件包
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
2. 设置Docker存储库
python
# Add Docker's official GPG key:
# 更新本地的包索引,确保系统能够获取最新的软件包信息
sudo apt-get update
# ca-certificates 提供 CA(证书颁发机构)证书,用于验证 HTTPS 连接的安全性;curl 一个命令行工具,用于从 URL 下载文件
sudo apt-get install ca-certificates curl
# 创建 `/etc/apt/keyrings` 目录,并设置权限为 `0755`(即所有用户可读可执行,但只有 root 用户可写)
sudo install -m 0755 -d /etc/apt/keyrings
# 使用 `curl` 命令从 Docker 的官方服务器下载 GPG 公钥,并保存到 `/etc/apt/keyrings/docker.asc` 文件中
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
# 将 `/etc/apt/keyrings/docker.asc` 文件的权限设置为全局可读(`a+r` 表示所有用户都有读权限)
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
# 将 Docker 的官方存储库添加到 APT 的源列表中
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
-
deb [...]
:deb
:声明这是一个二进制软件包的存储库。[arch=...]
:指定当前系统的架构(如amd64
、arm64
等),通过dpkg --print-architecture
动态获取。signed-by=/etc/apt/keyrings/docker.asc
:指定使用哪个 GPG 密钥来验证存储库的签名。https://download.docker.com/linux/ubuntu
:Docker 官方存储库的 URL。${UBUNTU_CODENAME:-$VERSION_CODENAME}
:动态获取当前 Ubuntu 版本的代号(如focal
对应 Ubuntu 20.04)。stable
:指定使用稳定版本的存储库。
-
tee
:- 将输出写入文件
/etc/apt/sources.list.d/docker.list
,同时丢弃终端输出(> /dev/null
)
- 将输出写入文件
其中Docker源推荐更改为国内源,常见的国内源如下:
arduino
阿里云
https://mirrors.aliyun.com/docker-ce/linux/ubuntu focal stable
清华大学
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu focal stable
若已经执行了上述命令,可在/etc/apt/sources.list.d/docker.list
中更改源地址 修改后需执行sudo apt-get update
更新APT包索引
3.安装Docker软件包
安装最新命令如下:
js
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
安装特定版本
ini
# 列出存储库中可用版本
# List the available versions:
apt-cache madison docker-ce | awk '{ print $3 }'
5:28.0.4-1~ubuntu.24.04~noble
5:28.0.3-1~ubuntu.24.04~noble
# 选择版本安装
VERSION_STRING=5:28.0.4-1~ubuntu.24.04~noble
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
4.启动Docker
sql
sudo systemctl start docker
5.运行命令查看是否成功
arduino
sudo docker run hello-world
运行时若出现下列报错:
arduino
Unable to find image 'hello-word:latest' locally docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) Run 'docker run --help' for more information
第一次运行该镜像,Docker 会尝试从远程仓库(默认是 Docker Hub)拉取镜像
因为默认不是国内源,访问会受限,需更改为国内源
在文件/etc/docker/daemon.json
中添加如下代码:
json
{
"registry-mirrors": [
"https://docker.1ms.run"
"https://hub-mirror.c.163.com", // 网易镜像
"https://mirror.baidubce.com", // 百度云镜像
"https://<your-mirror-url>.mirror.aliyuncs.com" // 阿里云镜像(需替换为你的专属地址)
]
}
以上镜像或许不可用,网页搜索可用镜像
更改镜像源之后运行命令重启docker以生效
sudo systemctl daemon-reload
sudo systemctl restart docker
备注:
ruby
系统环境:ubuntu 22.04 LTS
Docker官网文档地址:https://docs.docker.com
Docker ubuntu安装文档地址:https://docs.docker.com/engine/install/ubuntu/