apt命令安装docker

一、前置准备

  1. 确保系统版本符合要求(Ubuntu 16.04+、Debian 10+,推荐 Ubuntu 20.04/22.04)。
  2. 先更新系统软件包索引,避免依赖冲突:
bash 复制代码
sudo apt-get update
  1. 卸载旧版本(若已安装,无旧版本则执行无报错,可直接运行):
bash 复制代码
sudo apt-get remove -y docker docker-engine docker.io containerd runc
# 清理残留数据(可选,确保环境干净)
sudo rm -rf /var/lib/docker /var/lib/containerd

二、安装必要依赖,添加 Docker 官方 GPG 密钥

Docker 官方包存放在专属 apt 源中,需要先安装依赖并导入官方 GPG 密钥验证包的合法性:

bash 复制代码
# 安装必要依赖(用于添加 HTTPS 源、解析 GPG 密钥)
sudo apt-get install -y ca-certificates curl gnupg lsb-release
bash 复制代码
# 添加 Docker 官方 GPG 密钥,并保存到系统密钥目录
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

三、添加 Docker 官方 apt 软件源

将 Docker 官方 apt 源配置到系统中,确保后续安装的是官方稳定版,而非系统自带的旧版本:

bash 复制代码
# 写入 Docker apt 源配置到 /etc/apt/sources.list.d/ 目录
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • 说明:$(dpkg --print-architecture) 自动识别系统架构(如 amd64),$(lsb_release -cs) 自动识别 Ubuntu 发行版代号(如 focal 对应 20.04、jammy 对应 22.04),无需手动修改。

四、安装 Docker 引擎(核心组件)

  1. 再次更新软件包索引,让系统识别新增的 Docker apt 源:
bash 复制代码
sudo apt-get update
  1. 安装最新稳定版 Docker 核心组件(包含 docker-cedocker-ce-clicontainerd.io):
bash 复制代码
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
  1. 验证 Docker 安装成功并启动:
bash 复制代码
# 查看 Docker 版本(输出版本信息即安装成功)
docker -v
# 启动 Docker 服务
sudo systemctl start docker
# 设置开机自启(重启系统后自动启动 Docker)
sudo systemctl enable docker
# 验证 Docker 运行状态(显示 active(running) 即为正常)
sudo systemctl status docker

五、安装 Docker Compose(两种方式,任选其一)

方式 1:通过 apt 安装(简单,推荐新手,版本可能略旧但稳定)

Docker Compose 已纳入官方 apt 源,可直接通过 apt 安装:

bash 复制代码
# 安装 Docker Compose
sudo apt-get install -y docker-compose-plugin
bash 复制代码
# 验证安装(注意:apt 安装的新版命令为 docker compose(无短横线),兼容旧版 docker-compose)
docker compose version
# 若需兼容旧版命令,可建立软链接(可选)
sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose
# 验证旧版命令(可选)
docker-compose -v
方式 2:安装最新版 Docker Compose(二进制文件,版本最新)

若需要最新功能,可直接从 GitHub 下载二进制文件(解决 apt 版本偏旧的问题):

bash 复制代码
# 下载最新版 Docker Compose 二进制文件
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
bash 复制代码
# 给二进制文件添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装(输出版本信息即成功)
docker-compose -v
  • 若 GitHub 下载缓慢,可替换为国内网易镜像:
bash 复制代码
sudo curl -L https://mirrors.163.com/docker-compose/latest/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

六、必做优化配置

1. 给普通用户添加 Docker 操作权限(免 sudo)

默认只有 root 用户能操作 Docker,普通用户执行命令会报权限错误,配置如下:

bash 复制代码
# 将当前用户加入 docker 用户组
sudo usermod -aG docker $USER
# 刷新用户组(无需重启系统,立即生效)
newgrp docker
  • 验证:执行 docker ps,无报错且显示表头(无运行容器则为空),说明权限配置成功。
2. 配置国内镜像加速(解决拉取镜像慢)

Docker 默认拉取海外仓库,国内速度极慢,配置阿里云/网易镜像加速:

bash 复制代码
# 创建 Docker 配置目录(若不存在)
sudo mkdir -p /etc/docker
# 写入镜像加速配置(替换为你的阿里云专属地址,无阿里云可使用备用镜像)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF
  • 备用镜像源(无阿里云账号可直接使用):
json 复制代码
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://reg-mirror.qiniu.com"
  ]
}
bash 复制代码
# 重新加载配置并重启 Docker,使加速生效
sudo systemctl daemon-reload
sudo systemctl restart docker
# 验证加速配置(显示 registry-mirrors 为配置的地址即成功)
docker info

七、验证安装完整性(运行测试容器)

执行官方 hello-world 容器,验证 Docker 和 Docker Compose 均能正常工作:

bash 复制代码
# 验证 Docker 基础功能
docker run hello-world
  • 成功标志:终端输出 Hello from Docker!,代表镜像拉取、容器运行均正常。
bash 复制代码
# 验证 Docker Compose 功能(创建简单 docker-compose.yml 测试)
# 1. 创建测试配置文件
cat > docker-compose-test.yml <<-'EOF'
version: '3.8'
services:
  nginx:
    image: nginx:alpine
    ports:
      - "8080:80"
EOF
# 2. 启动容器
docker-compose -f docker-compose-test.yml up -d
# 3. 验证:访问 http://服务器IP:8080,能看到 Nginx 欢迎页即成功
# 4. 停止并删除测试容器
docker-compose -f docker-compose-test.yml down

八、常见问题排查

  1. 执行 apt-get install docker-ce 提示「软件包无法找到」
  • 原因:Docker apt 源添加失败,重新执行步骤三,确保 GPG 密钥和源配置正确。
  • 验证:查看 /etc/apt/sources.list.d/docker.list 文件,确认内容不为空。
  1. Docker Compose 命令提示「command not found」
  • 原因:未添加执行权限或路径错误,重新执行:
bash 复制代码
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  1. 启动 Docker 提示「Job for docker.service failed」
  • 原因:daemon.json 配置格式错误(如缺少逗号、引号),检查配置文件语法并修正,然后重启 Docker:
bash 复制代码
sudo systemctl restart docker

总结

  1. 核心步骤:添加官方 GPG 密钥 → 配置 Docker apt 源 → apt-get install 安装 Docker 与 Docker Compose。
  2. 关键优化:普通用户权限配置(免 sudo)、国内镜像加速(解决拉取慢)。
  3. 命令差异:apt 安装的新版 Docker Compose 命令为 docker compose(无短横线),二进制安装为 docker-compose(有短横线),两者功能兼容。
  4. 验证标准:docker -vdocker compose version 输出版本,docker run hello-world 运行成功,即为安装完整。
相关推荐
莫比乌斯之梦1 天前
使用 Docker 运行 Jenkins:快速搭建高效 CI/CD 环境指南
ci/cd·docker·jenkins
程序设计实验室1 天前
从挖矿木马入侵到 Docker Rootless 加固,我的服务器安全复盘
linux·docker
only_Klein1 天前
Kubernetes发布策略之蓝绿发布与金丝雀发布
云原生·容器·kubernetes
爱吃糖的小秦同学1 天前
腾讯微云容量校准
容器
yunteng5211 天前
Sealos部署k8s集群
云原生·容器·kubernetes·sealos
学到头秃的suhian1 天前
Docker基础扫盲
运维·docker·容器
袁袁袁袁满1 天前
Docker后台日志和容器日志怎么查看?
linux·运维·服务器·docker·容器
学到头秃的suhian1 天前
Docker相关命令
docker·容器
技术栈壳1 天前
了解K8s
云原生·容器·kubernetes
请为小H留灯1 天前
Docker 命令速通指南:从入门到封神的 100 + 必学指令,一篇搞定容器全操作
运维·docker·容器