天元小站
实用工具箱
干货教程
关于我们
ICP备案号:
苏ICP备2026032856号-1
返回教程列表
Docker 常用命令速查表
tianyuan
Mon May 25 23:36:42 UTC 2026
16
次浏览
运维
<p>整理日常开发、运维高频使用的 Docker 命令,包含基础操作、进阶用法、网络 / 数据卷、清理、批量操作等,附带详细注释,即查即用。</p> <h2>一、容器管理</h2> <h3>1. 容器运行与创建</h3> <pre><code class="language-bash"># 后台启动容器,指定名称、端口映射 # -d 后台运行;--name 容器名;-p 宿主机端口:容器端口 docker run -d --name myapp -p 8080:80 nginx # 交互式启动容器(临时测试,退出即停止) docker run -it nginx /bin/bash # 启动容器并挂载数据卷(持久化数据) # 【推荐】-v 宿主机绝对路径:容器内路径,避免相对路径踩坑 docker run -d --name myapp -p 8080:80 -v /host/data:/container/data nginx # 启动容器并设置开机/异常重启 # 【生产推荐】--restart unless-stopped:仅手动停止时不重启 # --restart always:强制始终重启(除非手动删除容器) docker run -d --name myapp --restart unless-stopped -p 8080:80 nginx </code></pre> <h3>2. 容器查看与状态操作</h3> <pre><code class="language-bash"># 查看正在运行的容器 docker ps # 查看所有容器(运行中 + 已停止) docker ps -a # 只查看所有容器ID docker ps -aq # 启动已停止的容器 docker start myapp # 停止运行中的容器 docker stop myapp # 强制停止容器(类似断电) docker kill myapp # 重启容器 docker restart myapp </code></pre> <h3>3. 容器删除</h3> <pre><code class="language-bash"># 删除单个已停止的容器 docker rm myapp # 强制删除正在运行的容器 docker rm -f myapp # 批量删除所有容器(无论运行/停止) docker rm -f $(docker ps -aq) </code></pre> <h2>二、镜像管理</h2> <h3>1. 镜像拉取、查看、搜索</h3> <pre><code class="language-bash"># 从镜像仓库拉取镜像(默认最新版 latest) docker pull nginx # 拉取指定版本镜像 docker pull nginx:1.24.0 # 搜索公共镜像 docker search nginx # 查看本地所有镜像 docker images # 查看镜像详细信息 docker inspect nginx:1.24.0 </code></pre> <h3>2. 镜像构建、标签、推送</h3> <pre><code class="language-bash"># 构建镜像 -t 镜像名:版本号 . 代表Dockerfile在当前目录 docker build -t myapp:1.0 . # 构建镜像并指定Dockerfile文件名称 docker build -f Dockerfile.prod -t myapp:prod . # 给镜像打新标签(用于仓库推送) docker tag myapp:1.0 registry.example.com/myapp:1.0 # 登录镜像仓库 docker login registry.example.com # 推送镜像到私有/公共仓库 docker push registry.example.com/myapp:1.0 </code></pre> <h3>3. 镜像删除与导入导出</h3> <pre><code class="language-bash"># 删除指定镜像 docker rmi myapp:1.0 # 批量删除所有本地镜像 docker rmi $(docker images -q) # 导出镜像为tar包 docker save -o myapp.tar myapp:1.0 # 从tar包导入镜像 docker load -i myapp.tar </code></pre> <h2>三、日志、进入容器与调试</h2> <pre><code class="language-bash"># 查看容器日志(一次性输出全部) docker logs myapp # 实时滚动查看日志(开发常用,Ctrl+C 退出) docker logs -f myapp # 查看最后100行日志并实时刷新 docker logs -f --tail 100 myapp # 进入运行中的容器终端 docker exec -it myapp /bin/bash # 部分镜像无bash,使用sh docker exec -it myapp /bin/sh # 查看容器CPU、内存、网络资源占用 docker stats # 查看容器端口映射详情 docker port myapp </code></pre> <h2>四、数据卷 & 文件拷贝</h2> <h3>1. 数据卷管理</h3> <pre><code class="language-bash"># 查看所有数据卷 docker volume ls # 创建匿名数据卷 docker volume create my-volume # 查看数据卷详情 docker volume inspect my-volume # 删除无用数据卷 docker volume prune # 删除指定数据卷 docker volume rm my-volume </code></pre> <h3>2. 宿主机 <=> 容器 文件互拷</h3> <pre><code class="language-bash"># 宿主机文件 拷贝到 容器内 docker cp /host/file.txt myapp:/container/path/ # 容器内文件 拷贝到 宿主机 docker cp myapp:/container/file.txt /host/path/ </code></pre> <h2>五、网络操作</h2> <pre><code class="language-bash"># 查看Docker网络 docker network ls # 创建自定义桥接网络 docker network create my-network # 容器加入指定网络 docker run -d --name myapp --network my-network nginx # 查看网络详情 docker network inspect my-network # 删除无用网络 docker network prune # 删除指定网络 docker network rm my-network </code></pre> <h2>六、系统清理(释放磁盘空间)</h2> <pre><code class="language-bash"># 清理所有停止的容器、悬空镜像、无用网络 docker system prune # 深度清理(包含未使用的镜像、数据卷,谨慎使用) docker system prune -a # 仅清理所有已停止的容器 docker container prune # 仅清理悬空镜像 docker image prune </code></pre> <h2>七、常用组合命令(批量运维)</h2> <pre><code class="language-bash"># 停止所有【正在运行】的容器 docker stop $(docker ps -q) # 删除所有【已停止】的容器(需先停止) docker container prune # 重启所有【正在运行】的容器(不会启动已停止的容器) docker restart $(docker ps -q) </code></pre> <h2>八、补充常用参数说明</h2> <table> <thead> <tr> <th>参数</th> <th>作用</th> </tr> </thead> <tbody><tr> <td><code>-d</code></td> <td>容器后台守护运行</td> </tr> <tr> <td><code>-it</code></td> <td>交互式终端,进入容器</td> </tr> <tr> <td><code>-p 宿主机:容器</code></td> <td>端口映射</td> </tr> <tr> <td><code>-v</code></td> <td>数据卷挂载(推荐使用绝对路径)</td> </tr> <tr> <td><code>--name</code></td> <td>自定义容器名称</td> </tr> <tr> <td><code>--restart unless-stopped</code></td> <td>生产推荐:开机/异常自动重启,手动停止则不重启</td> </tr> <tr> <td><code>--restart always</code></td> <td>始终自动重启(优先级低于手动删除)</td> </tr> <tr> <td><code>-f</code></td> <td>强制操作(删除 / 停止)</td> </tr> </tbody></table> <hr>