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/
相关推荐
GanGuaGua32 分钟前
Linux系统:线程的互斥和安全
linux·运维·服务器·c语言·c++·安全
lsnm41 分钟前
【LINUX网络】IP——网络层
linux·服务器·网络·c++·网络协议·tcp/ip
不掰手腕1 小时前
在UnionTech OS Server 20 (统信UOS服务器版) 上离线安装PostgreSQL (pgsql) 数据库
linux·数据库·postgresql
感哥1 小时前
Docker网络
docker
Lynnxiaowen1 小时前
今天继续昨天的正则表达式进行学习
linux·运维·学习·正则表达式·云计算·bash
努力学习的小廉2 小时前
深入了解linux系统—— POSIX信号量
linux·运维·服务器
刘一说2 小时前
CentOS部署ELK Stack完整指南
linux·elk·centos
从零开始的ops生活2 小时前
【Day 50 】Linux-nginx反向代理与负载均衡
linux·nginx
IT成长日记2 小时前
【Linux基础】Linux系统配置IP详解:从入门到精通
linux·运维·tcp/ip·ip地址配置
夜无霄2 小时前
安卓逆向(一)Ubuntu环境配置
linux·运维·爬虫·ubuntu