源静香 發表於 2026-1-13 08:42:17

Docker & Docker Compose安装教程

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">1. 环境信息</a></li><li><a href="#_label1">2. 安装方案概述</a></li><ul class="second_class_ul"><li><a href="#_lab2_1_0">2.1 安装方式</a></li><li><a href="#_lab2_1_1">2.2 安装组件</a></li><li><a href="#_lab2_1_2">2.3 生产级配置</a></li></ul><li><a href="#_label2">3. 实施步骤</a></li><ul class="second_class_ul"><li><a href="#_lab2_2_3">3.1 卸载旧版本(如有)</a></li><li><a href="#_lab2_2_4">3.2 安装依赖包</a></li><li><a href="#_lab2_2_5">3.3 添加 Docker 官方 GPG 密钥</a></li><li><a href="#_lab2_2_6">3.4 添加 Docker APT 仓库</a></li><li><a href="#_lab2_2_7">3.5 安装 Docker Engine</a></li><li><a href="#_lab2_2_8">3.6 配置 Docker Daemon(生产级配置)</a></li><li><a href="#_lab2_2_9">3.7 启动 Docker 并设置开机自启</a></li><li><a href="#_lab2_2_10">3.8 配置用户权限</a></li><li><a href="#_lab2_2_11">3.9 验证安装</a></li></ul><li><a href="#_label3">4. 验证清单</a></li><ul class="second_class_ul"></ul><li><a href="#_label4">5. 常用命令参考</a></li><ul class="second_class_ul"></ul><li><a href="#_label5">6. 故障排查</a></li><ul class="second_class_ul"><li><a href="#_lab2_5_12">6.1 服务启动失败</a></li><li><a href="#_lab2_5_13">6.2 权限问题</a></li><li><a href="#_lab2_5_14">6.3 网络问题</a></li></ul><li><a href="#_label6">7. 文档信息</a></li><ul class="second_class_ul"></ul><li><a href="#_label7">8. 总结</a></li><ul class="second_class_ul"></ul></ul></div><p class="maodian"><a name="_label0"></a></p><h2>1. 环境信息</h2>
<table><thead><tr><th>项目</th><th>值</th></tr></thead><tbody><tr><td>操作系统</td><td>Ubuntu 22.04.1 LTS (Jammy)</td></tr><tr><td>内核版本</td><td>5.15.0-164-generic</td></tr><tr><td>存储位置</td><td>/var/lib/docker (根分区,282G可用)</td></tr><tr><td>文件系统</td><td>XFS</td></tr></tbody></table>
<p class="maodian"><a name="_label1"></a></p><h2>2. 安装方案概述</h2>
<p class="maodian"><a name="_lab2_1_0"></a></p><h3>2.1 安装方式</h3>
<p>采用 <strong>Docker 官方 APT 仓库</strong>安装,确保获取最新稳定版本和安全更新。</p>
<p class="maodian"><a name="_lab2_1_1"></a></p><h3>2.2 安装组件</h3>
<table><thead><tr><th>组件</th><th>说明</th></tr></thead><tbody><tr><td>docker-ce</td><td>Docker Engine 社区版</td></tr><tr><td>docker-ce-cli</td><td>Docker 命令行工具</td></tr><tr><td>containerd.io</td><td>容器运行时</td></tr><tr><td>docker-buildx-plugin</td><td>构建扩展插件</td></tr><tr><td>docker-compose-plugin</td><td>Docker Compose V2 插件</td></tr></tbody></table>
<p class="maodian"><a name="_lab2_1_2"></a></p><h3>2.3 生产级配置</h3>
<table><thead><tr><th>配置项</th><th>设置</th><th>说明</th></tr></thead><tbody><tr><td>存储驱动</td><td>overlay2</td><td>Ubuntu 默认,性能最优</td></tr><tr><td>日志驱动</td><td>json-file</td><td>默认驱动,配置轮转限制</td></tr><tr><td>日志大小限制</td><td>100MB/文件,3个文件</td><td>防止日志占满磁盘</td></tr><tr><td>开机自启</td><td>启用</td><td>systemd 管理</td></tr><tr><td>用户权限</td><td>当前用户加入 docker 组</td><td>免 sudo 运行</td></tr><tr><td>镜像加速</td><td>国内镜像源</td><td>加速镜像拉取</td></tr></tbody></table>
<p class="maodian"><a name="_label2"></a></p><h2>3. 实施步骤</h2>
<p class="maodian"><a name="_lab2_2_3"></a></p><h3>3.1 卸载旧版本(如有)</h3>
<div class="jb51code"><pre class="brush:bash;">sudo apt-get remove -y docker docker-engine docker.io containerd runc 2&gt;/dev/null || true
</pre></div>
<p class="maodian"><a name="_lab2_2_4"></a></p><h3>3.2 安装依赖包</h3>
<div class="jb51code"><pre class="brush:bash;">sudo apt-get update
sudo apt-get install -y \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
</pre></div>
<p class="maodian"><a name="_lab2_2_5"></a></p><h3>3.3 添加 Docker 官方 GPG 密钥</h3>
<div class="jb51code"><pre class="brush:bash;">sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
</pre></div>
<p class="maodian"><a name="_lab2_2_6"></a></p><h3>3.4 添加 Docker APT 仓库</h3>
<div class="jb51code"><pre class="brush:bash;">echo \
"deb https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list &gt; /dev/null
</pre></div>
<p class="maodian"><a name="_lab2_2_7"></a></p><h3>3.5 安装 Docker Engine</h3>
<div class="jb51code"><pre class="brush:bash;">sudo apt-get update
sudo apt-get install -y \
    docker-ce \
    docker-ce-cli \
    containerd.io \
    docker-buildx-plugin \
    docker-compose-plugin
</pre></div>
<p class="maodian"><a name="_lab2_2_8"></a></p><h3>3.6 配置 Docker Daemon(生产级配置)</h3>
<div class="jb51code"><pre class="brush:bash;">sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json &gt; /dev/null &lt;&lt;EOF
{
"log-driver": "json-file",
"log-opts": {
    "max-size": "100m",
    "max-file": "3"
},
"storage-driver": "overlay2",
"live-restore": true,
"registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me"
]
}
EOF
</pre></div>
<p><strong>配置说明:</strong></p>
<table><thead><tr><th>参数</th><th>说明</th></tr></thead><tbody><tr><td>log-driver</td><td>日志驱动,json-file 为默认</td></tr><tr><td>max-size</td><td>单个日志文件最大 100MB</td></tr><tr><td>max-file</td><td>最多保留 3 个日志文件</td></tr><tr><td>storage-driver</td><td>存储驱动,overlay2 性能最优</td></tr><tr><td>live-restore</td><td>容器在 daemon 重启时保持运行</td></tr><tr><td>registry-mirrors</td><td>国内镜像加速器地址</td></tr></tbody></table>
<p class="maodian"><a name="_lab2_2_9"></a></p><h3>3.7 启动 Docker 并设置开机自启</h3>
<div class="jb51code"><pre class="brush:bash;">sudo systemctl daemon-reload
sudo systemctl enable docker
sudo systemctl start docker
</pre></div>
<p class="maodian"><a name="_lab2_2_10"></a></p><h3>3.8 配置用户权限</h3>
<div class="jb51code"><pre class="brush:bash;">sudo usermod -aG docker $USER
</pre></div>
<p><strong>注意:</strong> 执行后需要重新登录或执行 <code>newgrp docker</code> 使权限生效。</p>
<p class="maodian"><a name="_lab2_2_11"></a></p><h3>3.9 验证安装</h3>
<div class="jb51code"><pre class="brush:bash;"># 检查 Docker 版本
docker --version

# 检查 Docker Compose 版本
docker compose version

# 检查 Docker 服务状态
sudo systemctl status docker

# 运行测试容器
docker run --rm hello-world
</pre></div>
<p class="maodian"><a name="_label3"></a></p><h2>4. 验证清单</h2>
<table><thead><tr><th>检查项</th><th>预期结果</th><th>命令</th></tr></thead><tbody><tr><td>Docker 版本</td><td>显示版本号</td><td>docker --version</td></tr><tr><td>Compose 版本</td><td>显示版本号</td><td>docker compose version</td></tr><tr><td>服务状态</td><td>active (running)</td><td>systemctl status docker</td></tr><tr><td>开机自启</td><td>enabled</td><td>systemctl is-enabled docker</td></tr><tr><td>用户权限</td><td>免 sudo 运行</td><td>docker ps</td></tr><tr><td>存储驱动</td><td>overlay2</td><td>docker info | grep &quot;Storage Driver&quot;</td></tr><tr><td>测试容器</td><td>Hello from Docker!</td><td>docker run --rm hello-world</td></tr></tbody></table>
<p class="maodian"><a name="_label4"></a></p><h2>5. 常用命令参考</h2>
<div class="jb51code"><pre class="brush:bash;"># 查看 Docker 详细信息
docker info

# 查看运行中的容器
docker ps

# 查看所有容器
docker ps -a

# 查看镜像列表
docker images

# 清理未使用资源
docker system prune -a

# 查看磁盘使用情况
docker system df
</pre></div>
<p class="maodian"><a name="_label5"></a></p><h2>6. 故障排查</h2>
<p class="maodian"><a name="_lab2_5_12"></a></p><h3>6.1 服务启动失败</h3>
<div class="jb51code"><pre class="brush:bash;">sudo journalctl -xeu docker.service
</pre></div>
<p class="maodian"><a name="_lab2_5_13"></a></p><h3>6.2 权限问题</h3>
<div class="jb51code"><pre class="brush:bash;"># 确认用户在 docker 组
groups $USER

# 重新加载组权限
newgrp docker
</pre></div>
<p class="maodian"><a name="_lab2_5_14"></a></p><h3>6.3 网络问题</h3>
<div class="jb51code"><pre class="brush:bash;"># 检查 Docker 网络
docker network ls

# 重置 Docker 网络
sudo systemctl restart docker
</pre></div>
<p class="maodian"><a name="_label6"></a></p><h2>7. 文档信息</h2>
<table><thead><tr><th>项目</th><th>值</th></tr></thead><tbody><tr><td>创建时间</td><td>2026-01-10</td></tr><tr><td>目标系统</td><td>Ubuntu 22.04.1 LTS</td></tr><tr><td>Docker 版本</td><td>29.1.4</td></tr><tr><td>Docker Compose 版本</td><td>v5.0.1</td></tr><tr><td>containerd 版本</td><td>2.2.1</td></tr></tbody></table>
<p class="maodian"><a name="_label7"></a></p><h2>8. 总结</h2>
<p>以上为个人经验,希望能给大家一个参考,也希望大家多多支持琼殿技术社区。</p>
頁: [1]
查看完整版本: Docker & Docker Compose安装教程