服务器上使用 Docker 的常用命令清单完整流程
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">🐳 一、镜像(Image)相关</a></li><li><a href="#_label1">📦 二、容器(Container)管理</a></li><ul class="second_class_ul"><li><a href="#_lab2_1_0">启动容器</a></li><li><a href="#_lab2_1_1">查看容器</a></li><li><a href="#_lab2_1_2">停止/删除容器</a></li></ul><li><a href="#_label2">📝 三、日志与调试</a></li><ul class="second_class_ul"></ul><li><a href="#_label3">🌐 四、端口与网络</a></li><ul class="second_class_ul"></ul><li><a href="#_label4">🧹 五、清理与释放空间</a></li><ul class="second_class_ul"></ul><li><a href="#_label5">🚀 六、部署 FastAPI 常用完整流程</a></li><ul class="second_class_ul"></ul><li><a href="#_label6">🔒 七、权限问题(常见)</a></li><ul class="second_class_ul"></ul></ul></div><p>在 <strong>Ubuntu 服务器上使用 Docker 的常用命令清单</strong>,涵盖 <strong>镜像管理、容器操作、日志查看、网络与端口、清理资源</strong> 等核心场景,适合日常开发和运维。</p><p class="maodian"><a name="_label0"></a></p><h2>🐳 一、镜像(Image)相关</h2>
<table><thead><tr><th>命令</th><th>说明</th></tr></thead><tbody><tr><td><code>docker images</code></td><td>列出本地所有镜像</td></tr><tr><td><code>docker build -t 镜像名 .</code></td><td>从当前目录的 <code>Dockerfile</code> 构建镜像(<code>.</code> 是构建上下文)</td></tr><tr><td><code>docker rmi 镜像名或ID</code></td><td>删除指定镜像</td></tr><tr><td><code>docker rmi $(docker images -q)</code></td><td>删除所有镜像(慎用)</td></tr><tr><td><code>docker pull 镜像名</code></td><td>从仓库拉取镜像(如 <code>docker pull nginx</code>)</td></tr></tbody></table>
<p class="maodian"><a name="_label1"></a></p><h2>📦 二、容器(Container)管理</h2>
<p class="maodian"><a name="_lab2_1_0"></a></p><h3>启动容器</h3>
<div class="jb51code"><pre class="brush:bash;"># 后台运行(推荐部署用)
docker run -d --name 容器名 -p 主机端口:容器端口 镜像名
# 示例:启动 FastAPI
docker run -d --name backend -p 8000:8000 fastapi-backend</pre></div>
<p class="maodian"><a name="_lab2_1_1"></a></p><h3>查看容器</h3>
<table><thead><tr><th>命令</th><th>说明</th></tr></thead><tbody><tr><td><code>docker ps</code></td><td>查看<strong>正在运行</strong>的容器</td></tr><tr><td><code>docker ps -a</code></td><td>查看<strong>所有容器</strong>(包括已停止的)</td></tr><tr><td><code>docker inspect 容器名</code></td><td>查看容器详细信息(IP、挂载、环境变量等)</td></tr></tbody></table>
<p class="maodian"><a name="_lab2_1_2"></a></p><h3>停止/删除容器</h3>
<table><thead><tr><th>命令</th><th>说明</th></tr></thead><tbody><tr><td><code>docker stop 容器名</code></td><td>优雅停止容器</td></tr><tr><td><code>docker kill 容器名</code></td><td>强制终止容器</td></tr><tr><td><code>docker rm 容器名</code></td><td>删除已停止的容器</td></tr><tr><td><code>docker rm -f 容器名</code></td><td><strong>强制停止并删除容器</strong>(最常用)</td></tr><tr><td><code>docker rm -f $(docker ps -aq)</code></td><td>删除所有容器(慎用)</td></tr></tbody></table>
<p class="maodian"><a name="_label2"></a></p><h2>📝 三、日志与调试</h2>
<table><thead><tr><th>命令</th><th>说明</th></tr></thead><tbody><tr><td><code>docker logs 容器名</code></td><td>查看容器完整日志</td></tr><tr><td><code>docker logs -f 容器名</code></td><td><strong>实时跟踪日志</strong>(类似 <code>tail -f</code>)</td></tr><tr><td><code>docker logs --tail 50 容器名</code></td><td>查看最近 50 行日志</td></tr><tr><td><code>docker logs -t 容器名</code></td><td>显示带时间戳的日志</td></tr><tr><td><code>docker exec -it 容器名 sh</code></td><td>进入容器内部(调试用)<br />(如果容器有 <code>bash</code>,可用 <code>bash</code> 替代 <code>sh</code>)</td></tr></tbody></table>
<p>💡 调试示例:</p>
<div class="jb51code"><pre class="brush:bash;">docker exec -it backend sh
ls /app # 查看文件是否复制成功
python -c "import app.config"# 测试模块导入</pre></div>
<p class="maodian"><a name="_label3"></a></p><h2>🌐 四、端口与网络</h2>
<table><thead><tr><th>命令</th><th>说明</th></tr></thead><tbody><tr><td><code>-p 8000:8000</code></td><td>将主机 8000 端口映射到容器 8000 端口</td></tr><tr><td><code>docker port 容器名</code></td><td>查看容器端口映射情况</td></tr><tr><td><code>curl http://localhost:8000</code></td><td>在服务器本地测试服务是否通</td></tr></tbody></table>
<blockquote><p>⚠️ 注意:外网访问需在云平台(如腾讯云、阿里云)<strong>安全组/防火墙中放行对应端口</strong>!</p></blockquote>
<p class="maodian"><a name="_label4"></a></p><h2>🧹 五、清理与释放空间</h2>
<table><thead><tr><th>命令</th><th>说明</th></tr></thead><tbody><tr><td><code>docker system prune</code></td><td>删除所有<strong>停止的容器、无用网络、构建缓存</strong></td></tr><tr><td><code>docker system prune -a</code></td><td>删除<strong>所有未使用的镜像 + 上述内容</strong>(更彻底)</td></tr><tr><td><code>docker volume prune</code></td><td>清理无用数据卷</td></tr><tr><td><code>docker image prune</code></td><td>清理悬空(dangling)镜像</td></tr></tbody></table>
<blockquote><p>✅ 建议定期执行 <code>docker system prune</code> 释放磁盘空间。</p></blockquote>
<p class="maodian"><a name="_label5"></a></p><h2>🚀 六、部署 FastAPI 常用完整流程</h2>
<div class="jb51code"><pre class="brush:bash;"># 1. 进入项目目录
cd /home/ubuntu/app/backend
# 2. 构建镜像
docker build -t fastapi-backend .
# 3. 停止旧容器(如果存在)
docker rm -f backend
# 4. 启动新容器
docker run -d --name backend -p 8000:8000 fastapi-backend
# 5. 查看日志
docker logs -f backend
# 6. 本地测试
curl http://localhost:8000</pre></div>
<p class="maodian"><a name="_label6"></a></p><h2>🔒 七、权限问题(常见)</h2>
<p>如果遇到权限错误(如 <code>Got permission denied while trying to connect to the Docker daemon</code>),可将用户加入 <code>docker</code> 组:</p>
<div class="jb51code"><pre class="brush:bash;">sudo usermod -aG docker ubuntu
# 然后重新登录 SSH</pre></div>
<p>到此这篇关于服务器上使用 Docker 的常用命令清单的文章就介绍到这了,更多相关docker常用命令内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区!</p>
頁:
[1]