Docker 安装与卸载指南 🐳

本文全面涵盖 Docker 的安装、使用、维护和彻底卸载,为您提供一站式容器化管理解决方案。


📑 目录导航


🌟 概述

Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包到标准化单元中,从而实现快速部署、可扩展性和资源隔离。本指南提供在主流 Linux 发行版上安装、使用和卸载 Docker 的完整解决方案。


🐧 Debian 安装 Docker

1. 安装 Docker

1
2
# 更新包列表并安装 Docker
sudo apt-get update && sudo apt install docker.io -y

2. 使用脚本安装(替代方案)

1
2
3
4
# 使用一键安装脚本
curl -sS -O https://raw.gitmirror.com/kejilion/sh/main/cn/kejilion.sh && \
chmod +x kejilion.sh && \
./kejilion.sh

3. 配置国内镜像源

1
2
3
4
5
6
7
8
9
10
11
# 创建 Docker 镜像源配置文件
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null <<'EOF'
deb https://mirrors.aliyun.com/debian/ bookworm main non-free non-free-firmware contrib
deb-src https://mirrors.aliyun.com/debian/ bookworm main non-free non-free-firmware contrib
deb https://mirrors.aliyun.com/debian-security/ bookworm-security main
deb-src https://mirrors.aliyun.com/debian-security/ bookworm-security main
deb https://mirrors.aliyun.com/debian/ bookworm-updates main non-free non-free-firmware contrib
deb-src https://mirrors.aliyun.com/debian/ bookworm-updates main non-free non-free-firmware contrib
deb https://mirrors.aliyun.com/debian/ bookworm-backports main non-free non-free-firmware contrib
deb-src https://mirrors.aliyun.com/debian/ bookworm-backports main non-free non-free-firmware contrib
EOF

4. 配置 Docker 开机自启动

1
2
3
4
5
# 重新加载 systemd 配置
sudo systemctl daemon-reload

# 启用并启动 Docker 服务
sudo systemctl enable docker && sudo systemctl start docker

Docker 服务启动演示


🔴 CentOS 安装 Docker

1. 安装 Docker

1
2
# 使用 dnf 安装 Docker
sudo dnf install docker -y

2. 使用脚本安装(替代方案)

1
2
3
4
# 使用一键安装脚本
curl -sS -O https://raw.gitmirror.com/kejilion/sh/main/cn/kejilion.sh && \
chmod +x kejilion.sh && \
./kejilion.sh

3. 启动 Docker 服务

1
2
# 启动 Docker 服务
sudo systemctl start docker

4. 设置开机自启动

1
2
# 设置 Docker 开机自启动
sudo systemctl enable docker

5. 验证安装

1
2
# 检查 Docker 状态
sudo systemctl status docker

如果输出显示 Active: active (running),表示 Docker 已成功启动。


🦬 Ubuntu 安装 Docker

1. 卸载旧版本(如已安装)

1
2
# 卸载旧版本 Docker
sudo apt-get remove docker docker-engine docker.io containerd runc -y

2. 安装依赖包

1
2
3
# 更新包列表并安装必要依赖
sudo apt-get update && \
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common -y

3. 添加 Docker GPG 密钥

1
2
# 使用阿里云镜像源添加 GPG 密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

4. 添加 Docker 软件源

1
2
# 添加 Docker 官方软件源(使用阿里云镜像)
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

5. 安装 Docker Engine

1
2
3
# 更新包列表并安装 Docker
sudo apt-get update && \
sudo apt-get install docker-ce docker-ce-cli containerd.io -y

6. 启动并启用 Docker 服务

1
2
3
# 启动 Docker 并设置开机自启
sudo systemctl start docker && \
sudo systemctl enable docker

7. 验证安装

1
2
# 运行测试容器
docker run hello-world

⚙️ 通用配置与优化

1. 配置 Docker 镜像加速器

1
2
3
4
5
6
7
8
9
10
11
12
13
# 创建或修改 Docker daemon 配置
sudo tee /etc/docker/daemon.json > /dev/null <<'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
EOF

# 重启 Docker 服务使配置生效
sudo systemctl restart docker

2. 将用户添加到 Docker 组

1
2
3
4
5
# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER

# 应用组更改(需要重新登录生效)
newgrp docker

3. 验证 Docker 安装

1
2
3
4
5
6
7
8
# 检查 Docker 版本
docker --version

# 检查 Docker 运行状态
docker info

# 运行测试容器
docker run --rm hello-world

📊 Docker 常用命令

容器管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 列出运行中的容器
docker ps

# 列出所有容器(包括停止的)
docker ps -a

# 启动/停止容器
docker start <container_id>
docker stop <container_id>

# 删除容器
docker rm <container_id>

# 强制删除运行中的容器
docker rm -f <container_id>

镜像管理

1
2
3
4
5
6
7
8
9
10
11
# 列出本地镜像
docker images

# 拉取镜像
docker pull <image_name>

# 删除镜像
docker rmi <image_id>

# 构建镜像
docker build -t <image_name> .

日志查看

1
2
3
4
5
6
7
8
# 查看容器日志
docker logs <container_id>

# 实时查看日志
docker logs -f <container_id>

# 查看最近日志
docker logs --tail 100 <container_id>

容器操作

1
2
3
4
5
6
7
8
9
10
11
# 进入容器
docker exec -it <container_id> /bin/bash

# 在容器中执行命令
docker exec <container_id> <command>

# 复制文件到容器
docker cp local_file.txt <container_id>:/path/in/container/

# 从容器复制文件
docker cp <container_id>:/path/in/container/file.txt local_file.txt

🔒 安全建议

1. 定期更新 Docker

1
2
3
4
5
# 更新 Docker 到最新版本
sudo apt-get update && sudo apt-get upgrade docker-ce -y

# 或者使用 dnf (CentOS)
sudo dnf update docker -y

2. 配置防火墙

1
2
3
# 如果使用防火墙,确保开放必要端口
sudo ufw allow 2375/tcp # Docker API 端口
sudo ufw allow 2376/tcp # Docker TLS 端口

3. 启用内容信任

1
2
3
4
5
# 启用 Docker 内容信任
export DOCKER_CONTENT_TRUST=1

# 永久启用内容信任
echo "export DOCKER_CONTENT_TRUST=1" >> ~/.bashrc

4. 使用非 root 用户运行容器

1
2
3
4
5
# 在 Dockerfile 中指定非 root 用户
USER 1000:1000

# 或者在运行容器时指定用户
docker run -u 1000:1000 <image_name>

🗑️ Docker 完全卸载指南

彻底清理 Docker 及相关组件,释放系统资源

🎯 卸载前准备

卸载 Docker 前,务必备份重要数据,因为卸载过程会删除所有 Docker 相关的数据。

📊 备份重要数据

1
2
3
4
5
6
7
8
9
10
11
# 1. 备份容器数据(重要!)
docker ps -aq | xargs -I {} docker export {} > /tmp/container_backup.tar

# 2. 备份镜像列表
docker images --format "{{.Repository}}:{{.Tag}}" > /tmp/docker_images.list

# 3. 备份卷数据(如果有重要数据)
tar -czvf /tmp/docker_volumes_backup.tar.gz /var/lib/docker/volumes/

# 4. 备份 Docker 配置
cp -r /etc/docker /tmp/docker_config_backup

🔧 Debian 系卸载

适用于 Debian、Ubuntu、Kali Linux 等系统:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 1. 停止 Docker 服务
sudo systemctl stop docker
sudo systemctl stop docker.socket
sudo systemctl stop containerd

# 2. 卸载 Docker 及相关组件
sudo apt-get remove -y \
docker \
docker.io \
docker-ce \
docker-ce-cli \
docker-ce-rootless-extras \
docker-buildx-plugin \
docker-compose-plugin \
containerd.io \
runc

# 3. 清理未使用的依赖包
sudo apt-get autoremove -y
sudo apt-get autoclean -y

# 4. 清除配置文件和残留数据
sudo apt-get purge -y docker* containerd* runc

🔴 RedHat 系卸载

适用于 CentOS、RHEL、Rocky Linux 等系统:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 1. 停止 Docker 服务
sudo systemctl stop docker
sudo systemctl stop docker.socket
sudo systemctl stop containerd

# 2. 卸载 Docker 及相关组件
sudo yum remove -y \
docker \
docker-ce \
docker-ce-cli \
docker-ce-rootless-extras \
docker-buildx-plugin \
docker-compose-plugin \
containerd.io \
podman \
podman-docker \
runc

# 3. 清理依赖包
sudo yum autoremove -y
sudo yum clean all

# 4. 删除 Docker 组
sudo groupdel docker

🧹 数据清理

⚠️ 重要警告:以下操作会删除所有 Docker 数据!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 1. 删除 Docker 数据目录(镜像、容器、卷等)
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

# 2. 删除 Docker 配置目录
sudo rm -rf /etc/docker
sudo rm -rf /etc/containerd

# 3. 删除 Docker 日志文件
sudo rm -rf /var/log/docker
sudo rm -rf /var/log/containerd

# 4. 删除 Docker 运行时文件
sudo rm -rf /run/docker
sudo rm -rf /run/containerd

🔍 验证卸载

✅ 检查卸载是否彻底

1
2
3
4
5
6
7
8
9
10
11
# 1. 检查 Docker 命令是否还存在
which docker || echo "✅ Docker 命令已移除"
docker --version 2>/dev/null || echo "✅ Docker 已完全卸载"

# 2. 检查相关进程是否还在运行
ps aux | grep -i docker | grep -v grep
ps aux | grep -i containerd | grep -v grep

# 3. 检查相关文件是否已删除
ls -la /var/lib/docker 2>/dev/null || echo "✅ /var/lib/docker 已删除"
ls -la /etc/docker 2>/dev/null || echo "✅ /etc/docker 已删除"

💡 注意事项

⚠️ 重要提醒

  1. 📦 数据备份:卸载前务必备份重要容器和数据,卸载过程会删除所有 Docker 相关的数据。
  2. 🔒 权限检查:确保有足够的权限执行卸载操作。
  3. 🔄 服务状态:确认所有相关服务已停止。
  4. 📋 依赖关系:注意卸载可能影响依赖 Docker 的其他服务。

🔧 常见问题解决

1
2
3
4
5
6
# 如果卸载遇到依赖问题
sudo apt --fix-broken install # Debian/Ubuntu
sudo yum-complete-transaction # RedHat/CentOS

# 如果配置文件无法删除
sudo rm -rf /etc/docker /etc/containerd

🚀 重装 Docker(如果需要)

1
2
3
# 如果需要重新安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

🆘 常见问题

Q: 卸载 Docker 后,我的数据会丢失吗?
A: 是的,如果你没有提前备份数据,卸载过程会删除所有 Docker 相关的数据,包括容器、镜像和数据卷。因此卸载前务必备份重要数据

Q: 如何确保 Docker 已完全卸载?
A: 你可以通过以下命令验证:

1
2
docker --version  # 应该提示命令未找到
ps aux | grep docker # 不应该有 Docker 相关进程

Q: 卸载过程中遇到权限问题怎么办?
A: 确保你使用了 sudo 命令或具有 root 权限。对于一些残留文件,可能需要直接以 root 身份删除。

Q: 卸载后如何重新安装 Docker?
A: 你可以参考 Docker 官方文档重新安装,或者使用官方安装脚本:

1
2
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Q: 如何删除 Docker 相关的用户和组?
A: 可以使用以下命令删除 Docker 用户组:

1
sudo groupdel docker


🎯 总结

通过本指南,您应该能够:

  1. 📥 顺利安装 Docker - 在 Debian、CentOS 或 Ubuntu 系统上完成安装
  2. ⚙️ 正确配置优化 - 设置镜像加速和权限配置
  3. 🛠️ 掌握常用命令 - 容器、镜像管理和日常操作
  4. 🔒 实施安全措施 - 保障 Docker 环境安全
  5. 🗑️ 彻底卸载清理 - 完全移除 Docker 及相关数据

本指南涵盖了 Docker 的完整生命周期管理,从安装到卸载,为您提供一站式解决方案。如果在使用过程中遇到任何问题,建议查阅 Docker 官方文档 或寻求社区帮助。

现在开始享受容器化带来的便利吧!🐳🚀