
Docker & Docker Compose安装教程
Docker 是一个开源的容器化平台,能够将应用程序及其依赖项打包到一个轻量级、可移植的容器中运行。Docker Compose 则是用于定义和运行多容器 Docker 应用程序的工具,通过一个 YAML 文件即可配置应用的服务。本文将详细介绍如何在主流 Linux 系统(以 Ubuntu/Debian 为例)上专业、高效地安装 Docker 及 Docker Compose。
一、系统环境准备
在安装之前,建议更新系统软件包并卸载可能存在的旧版本 Docker,避免版本冲突导致安装失败。
# 更新系统软件包 sudo apt-get update # 卸载旧版本 Docker sudo apt-get remove docker docker-engine docker.io containerd runc
卸载后,/var/lib/docker/ 目录下的镜像、容器、卷和网络等数据会被保留。如果你需要全新安装并清理旧数据,可以手动删除该目录。
二、安装 Docker Engine
官方推荐通过 Docker 仓库进行安装,以便于后续的更新与维护。
1. 安装必要的依赖包
为了让 apt 能够通过 HTTPS 使用仓库,需要安装以下依赖:
sudo apt-get update sudo apt-get install ca-certificates curl gnupg lsb-release
2. 添加 Docker 官方 GPG 密钥与仓库
添加密钥并写入稳定的官方仓库源:
# 添加 GPG 密钥 sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 设置稳定版仓库 echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
3. 安装 Docker 相关组件
更新 apt 索引后,安装 Docker Engine、CLI、containerd 以及 Docker Compose 插件:
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
4. 验证 Docker 安装
安装完成后,运行测试镜像验证 Docker 是否被正确安装并启动:
sudo docker run hello-world
如果看到欢迎信息,说明 Docker 已成功安装并运行。
三、安装 Docker Compose
目前 Docker 官方已将 Docker Compose 作为插件集成(即上述安装步骤中的 docker-compose-plugin),安装完成后可以直接通过 docker compose(中间没有横线)命令调用。
如果你出于兼容性考虑,仍需要独立版的 docker-compose 命令,可以通过以下方式安装:
# 下载最新版的 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 # 授予执行权限 sudo chmod +x /usr/local/bin/docker-compose # 验证安装 docker-compose --version
建议优先使用内置的插件版(docker compose),这是官方未来主推的使用方式。
四、配置国内镜像加速
在国内网络环境下,拉取 Docker Hub 上的镜像可能会非常缓慢。配置镜像加速器可以显著提升下载速度。
编辑或新建 Docker 的配置文件 /etc/docker/daemon.json,填入加速地址(此处以官方演示网址替换为例,请替换为你实际获取的加速源):
{
"registry-mirrors": [
"https://www.ipipp.com"
]
}配置完成后,重启 Docker 服务并检查配置是否生效:
# 重新加载配置 sudo systemctl daemon-reload # 重启 Docker 服务 sudo systemctl restart docker # 检查镜像加速配置是否生效 docker info | grep -A 1 "Registry Mirrors"
五、免 sudo 使用 Docker(可选)
默认情况下,Docker 命令需要使用 sudo 权限运行。如果你希望当前用户能够直接运行 Docker 命令,可以将当前用户添加到 docker 用户组:
# 将当前用户加入 docker 组 sudo usermod -aG docker $USER # 使组变更生效(也可退出终端重新登录) newgrp docker
操作完成后,即可直接输入 docker ps 等命令而无需加 sudo。出于安全考量,生产环境中需谨慎赋予该权限。
六、防火墙注意事项
如果你在使用 UFW 防火墙,需要注意 Docker 默认会修改 iptables 规则,这可能会导致 UFW 的防火墙规则失效。为了确保安全性,建议编辑 /etc/docker/daemon.json,添加以下配置禁止 Docker 修改 iptables:
{
"iptables": false,
"registry-mirrors": [
"https://www.ipipp.com"
]
}设置 "iptables": false 后,需要你手动配置端口转发和 NAT 规则。如果你不熟悉 Linux 网络配置,建议保持默认,仅在需要时通过 UFW 显式开放 Docker 容器映射的端口。
至此,Docker 与 Docker Compose 已完整安装并配置完毕,你可以开始编写 docker-compose.yml 文件来构建你的容器化应用了。