当前位置:首页>Linux>如何在Linux上安装Docker Engine?

如何在Linux上安装Docker Engine?

  • 2026-09-02 19:09:43
如何在Linux上安装Docker Engine?

本案例演示用的操作系统是Debian12。关于Docker的简介、核心、与虚拟机的区别、什么时候用Docker?等“啰嗦”的介绍放在文档的最后面,有耐心的小伙伴可以继续看完哦。先上干货!关于linux系统,可参考前一篇文章“Linux学习路线图(初级版)”。

一、卸载旧版本(如果存在)

# 停止docker服务

sudo service docker stop # 推荐

--sudo systemctl stop docker

dpkg -l | grep docker

# 执行以下命令卸载所有冲突包:

sudo apt remove $(dpkg --get-selections docker.io docker-compose docker-doc podman-docker containerd runc | cut -f1)

存储的镜像、容器、卷和网络,不会卸载Docker时自动移除。如果你想清理所有数据,请进行如下操作:

1.卸载Docker Engine、CLI、containerd和Docker Compose包:

sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

2.主机上的镜像、容器、卷或自定义配置文件 删除:

sudo rm -rf /var/lib/docker

sudo rm -rf /var/lib/containerd

sudo rm -rf ~/.docker

3.移除源代码列表和钥匙圈:

sudo rm /etc/apt/sources.list.d/docker.sources

sudo rm /etc/apt/keyrings/docker.asc

4.手动删除任何编辑过的配置文件。

5.清理系统残留:

sudo apt autoremove -y

sudo apt autoclean -y

# 验证是否卸载成功

docker --version # 应提示“未找到命令”

sudo systemctl status docker # 应提示“Unit docker.service could not be found.”

sudo ls /var/lib/docker # 应提示“没有那个文件或目录”

二、安装Docker Engine(使用apt仓库方法)

第一次在新机上安装Docker Engine之前,需要搭建 Docker 仓库

1.搭建Docker的仓库

# Add Docker's official GPG key:

# 更新软件包索引

sudo apt update

# 安装必要工具

sudo apt install ca-certificates curl

# 添加密钥

sudo install -m 0755 -d /etc/apt/keyrings

sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc

# 设置适当的权限

sudo chmod a+r /etc/apt/keyrings/docker.asc

# 添加软件源

# Add the repository to Apt sources:

sudo tee /etc/apt/sources.list.d/docker.sources <<EOF

Types: deb

URIs: https://download.docker.com/linux/debian

Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")

Components: stable

Architectures: $(dpkg --print-architecture)

Signed-By: /etc/apt/keyrings/docker.asc

EOF

注释:

如果你使用衍生发行版,比如Kali Linux, 你可能需要替换这个命令中预期的部分 打印版本代号:$(. /etc/os-release && echo "$VERSION_CODENAME")将此部分替换为对应的 Debian 版本的代号,例如。Bookworm

# 再次更新包索引

sudo apt update

2.安装Docker包

# 安装最新版本

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 安装指定版本:

# 列出仓库中可用的版本:

apt list --all-versions docker-ce

输出示例:

docker-ce/bookworm 5:29.4.0-1~debian.12~bookworm <arch>

docker-ce/bookworm 5:29.3.1-1~debian.12~bookworm <arch>

...

# 选择所需版本并安装:

VERSION_STRING=5:29.4.0-1~debian.12~bookworm

sudo apt install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin

注释:

# Docker服务在安装后会自动启动。验证这一点请使用:

sudo systemctl status docker

# 有些系统可能关闭了该行为,需要手动启动:

sudo systemctl start docker

3.运行镜像确认安装成功

sudo docker run hello-world

输出含“Hello from Docker!”,表示成功!

如果没成功,请进行下一步:配置国内镜像

4.配置国内镜像

配置镜像就是在/etc/docker/daemon.json中添加registry-mirrors配置项

# 创建docker配置目录

sudo mkdir -p /etc/docker

# 配置镜像加速器(可使用多个国内镜像源)

sudo tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": [

"https://docker.1ms.run",

"https://docker.mirrors.ustc.edu.cn",

"https://hub-mirror.c.163.com",

"https://mirror.baidubce.com",

"https://registry.docker-cn.com"

]

}

EOF

特别提醒:

改该配置文件不能有任何注释,且镜像直接要用逗号分割,且最后一个后面不能有逗号。

# 验证镜像加速器配置是否生效

sudo docker info | grep -A 10 "Registry Mirrors"

# cat /etc/docker/daemon.json

# 重启生效

sudo systemctl daemon-reload

sudo systemctl restart docker

5.验证安装版本

docker --version

docker compose version

6.官方参考资料

以上安装步骤参考自官方指导文档:

https://docs.docker.com/engine/install/debian/

官方文档资料地址如下:

https://docs.docker.com/

其中入门指南地址如下:

https://www.docker.com/get-started/

三、安装后的设置必要设置

1.以非root用户身份管理Docker

如果你不想每次运行docker命令前面都要加上sudo请进行如下配置

# 创建群组docker

sudo groupadd docker

# 把你的用户添加到群组

sudo usermod -aG docker $USER

# 激活组的更改

newgrp docker

# 重启服务使配置生效

sudo service docker restart

# 验证

docker run hello-world

注意:

该组赋予用户根级权限。如果担心安全问题,可不设置。

2.设置docker服务开机自启动

很多现代 Linux 发行版(Ubuntu、Debian、CentOS/RHEL 7+ 等)都用 systemd 来管理系统服务的开机启动:在 Debian/Ubuntu 系统中,Docker 安装后默认就开启了开机自启;对于其他使用 systemd 的 Linux 系统(如 CentOS 7+、Rocky Linux 等),需要手动执行命令来开启 Docker 开机自启。

# 给 Docker 和它的依赖服务 containerd 设置开机自启:

sudo systemctl enable docker.service

sudo systemctl enable containerd.service

# 取消 Docker 开机自启:

sudo systemctl disable docker.service

sudo systemctl disable containerd.service

# 验证自启状态:

systemctl is-enabled docker.service

systemctl is-enabled containerd.service

输出 enabled:已开启开机自启

输出 disabled:已关闭开机自启

# 临时手动启停 Docker(不影响自启):

# 立即启动 Docker

sudo systemctl start docker.service

# 立即停止 Docker

sudo systemctl stop docker.service

# 重启 Docker

sudo systemctl restart docker.service

# 查看 Docker 运行状态

sudo systemctl status docker.service

四、Docker简介

1.什么是Docker?

Docker 是一个开源的容器化平台,它允许开发者将应用及其依赖(库、配置文件、环境变量等)打包到一个轻量级、可移植的容器中,然后在任何支持 Docker 的 Linux / Windows / macOS 服务器上运行。

核心价值:

l环境一致:解决“在我机器上可以运行”的问题。

l隔离性:每个容器拥有自己的文件系统、进程空间和网络。

l轻量:容器共享宿主机内核,启动是毫秒级,比虚拟机小得多。

l可移植:一次构建,到处运行(开发、测试、生产)。

2.Docker的核心概念

l镜像(Image):只读模板,包含应用运行所需的操作系统层、代码、运行时、库等。类似“类”或“安装包”。

l容器(Container):镜像的运行实例,是一个隔离的进程。可以启动、停止、删除。

l仓库(Repository):存放镜像的地方。Docker Hub 是官方公共仓库。

lDockerfile:文本文件,定义了如何构建一个镜像。

lDocker Compose:用于定义和运行多容器应用(如 web + redis + db)的工具。

3.Docker与虚拟机的区别

特性

Docker 容器

传统虚拟机

启动速度

毫秒级

分钟级

资源占用

MB 级别(只打包应用)

GB 级别(包含完整 OS)

隔离级别

进程级(共享宿主机内核)

完全隔离(各自有内核)

性能

接近原生

有虚拟化开销

迁移/复制

非常容易(镜像)

较复杂(需要导出 VM 文件)

4.什么时候用Docker?

✅适用场景:

l微服务架构(每个服务独立容器)

l开发环境统一(避免依赖冲突)

lCI/CD 流水线(测试、构建、部署)

l快速部署开源软件(一行命令跑起 MySQL、Redis、Nginx)

l本地模拟生产环境

❌不太适合:

l需要图形化界面的桌面应用(有办法但复杂)

l对延迟极度敏感的高性能计算(容器开销虽小但仍有)

l需要 Windows 内核特殊功能的场景

5.下一步你可以学什么?

lDocker Compose:管理多容器应用(docker-compose.yml)

l数据持久化:Volume 和 Bind Mount

l网络:bridge、host、overlay 等网络模式

l容器编排:Kubernetes(大规模容器管理)

最新文章

随机文章