Linux系统下Docker安装

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=...]:指定当前系统的架构(如 amd64arm64 等),通过 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/
相关推荐
迎風吹頭髮26 分钟前
Linux内核架构浅谈60-Linux块设备驱动:请求队列与BIO结构的交互流程
linux·运维·交互
☆璇30 分钟前
【Linux】Socket编程TCP
linux·服务器·tcp/ip
wifi chicken1 小时前
Linux 网络协议栈数据流跟踪-静态路由demo
linux·网络协议栈·静态路由
程序员的世界你不懂1 小时前
【Linux】Centos替代方案
linux
剑小麟2 小时前
windows系统安装wls/Ubuntu子系统教程
linux·运维·ubuntu
Ronin3052 小时前
【Linux网络】应用层自定义协议
linux·网络·应用层·序列化
终焉代码2 小时前
【Linux】基本指令(入门篇)(下)
linux·运维·服务器
---学无止境---5 小时前
Linux中基数树批量查询数据项相关函数的实现
linux
我也想失去烦恼6 小时前
Linux系统/etc/hosts文件中配置了主机解析,但还是无法解析ip
linux·运维·服务器
deng-c-f8 小时前
Linux C/C++ 学习日记(29):IO密集型与CPU密集型、CPU的调度与线程切换
linux·学习·线程·cpu·io密集·cpu密集