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/
相关推荐
fly spider1 小时前
一站式Windows下Docker开启MySQL并链接本地Navicat(附乱码解决方案)
windows·mysql·docker·乱码解决
liyongjun63161 小时前
CentOS 下 Zookeeper 常用命令与完整命令列表
linux·服务器·zookeeper·centos
巨可爱熊4 小时前
高并发内存池(定长内存池基础)
linux·运维·服务器·c++·算法
yangang1856 小时前
linuxbash原理
linux·运维·服务器
小小毛桃6 小时前
在Ubuntu系统中运行Windows程序
linux·windows·ubuntu
码农新猿类7 小时前
服务器本地搭建
linux·网络·c++
小度爱学习7 小时前
linux中的执行命令格式及命令帮助
linux·运维·chrome
神奇侠20247 小时前
快速入手K8s+Docker+KubeSphere+DevOps
docker·kubernetes·devops
良许Linux8 小时前
嵌入式算吃青春饭么?
linux
良许Linux8 小时前
马上要毕业去工作了,做嵌入式软件开发工程师,但是完全不会编程怎么办?
linux