Docker容器常用命令汇总


🐳 Docker 常用命令速查卡片

📦 镜像操作(Image)

bash 复制代码
# 搜索镜像
docker search 镜像名

# 拉取镜像
docker pull 镜像名[:标签]

# 查看镜像
docker images

# 删除镜像
docker rmi 镜像ID

# 给镜像打标签
docker tag 镜像ID 新名称:标签

# 构建镜像
docker build -t 镜像名 .

# 查看镜像详情
docker inspect 镜像ID

🧱 容器操作(Container)

bash 复制代码
# 创建但不启动容器
docker create --name 容器名 镜像名

# 启动容器
docker start 容器名

# 停止容器
docker stop 容器名

# 重启容器
docker restart 容器名

# 删除容器
docker rm 容器名

# 强制删除
docker rm -f 容器名

# 查看运行中容器
docker ps

# 查看所有容器
docker ps -a

# 查看容器日志
docker logs [-f] 容器名

# 进入容器
docker exec -it 容器名 /bin/bash

# 容器与主机互拷文件
docker cp 容器名:/容器路径 本地路径
docker cp 本地路径 容器名:/容器路径

# 查看容器资源使用
docker stats

🌐 网络与端口

bash 复制代码
# 运行并映射端口
docker run -p 8080:80 镜像名

# 查看容器 IP
docker inspect -f '{{.NetworkSettings.IPAddress}}' 容器名

# 网络创建与管理
docker network create 网络名
docker network ls
docker network inspect 网络名
docker network connect 网络名 容器名
docker network disconnect 网络名 容器名

⚙️ 容器运行参数常用组合

bash 复制代码
docker run -d \
  --name 容器名 \
  -p 主机端口:容器端口 \
  -v 主机路径:容器路径 \
  -e "环境变量=值" \
  --restart always \
  镜像名

🧹 清理命令

bash 复制代码
# 删除停止的容器
docker container prune

# 删除未使用的镜像
docker image prune

# 删除未使用的资源
docker system prune

# 删除所有容器(危险)
docker rm $(docker ps -aq)

# 删除所有镜像(危险)
docker rmi $(docker images -q)

🧾 Docker Compose

bash 复制代码
# 启动服务
docker-compose up

# 后台启动
docker-compose up -d

# 停止并删除
docker-compose down

# 查看日志
docker-compose logs [-f]

# 重启服务
docker-compose restart

# 查看状态
docker-compose ps

# 构建镜像
docker-compose build

🚀 日常运维命令速查卡片(进阶篇)

✅ 启动 & 停止容器(批量操作)

bash 复制代码
# 启动所有容器
docker start $(docker ps -a -q)

# 停止所有运行中的容器
docker stop $(docker ps -q)

# 停止并删除所有容器
docker stop $(docker ps -q) && docker rm $(docker ps -a -q)

🧼 清理空间

bash 复制代码
# 删除所有未被使用的镜像
docker image prune -a

# 删除所有已停止的容器
docker container prune

# 一键清理所有未使用资源(包括网络、卷等)
docker system prune -a

# 删除所有卷(小心使用)
docker volume prune

🗂 文件操作(容器 ↔ 主机)

bash 复制代码
# 从容器中拷贝文件到主机
docker cp 容器ID:/path/in/container /path/on/host

# 从主机拷贝文件到容器中
docker cp /path/on/host 容器ID:/path/in/container

# 示例:将日志文件拷出
docker cp my-container:/var/log/app.log ./app.log

# 示例:将配置文件拷入容器
docker cp ./nginx.conf my-nginx:/etc/nginx/nginx.conf

🔍 网络 & 端口调试

bash 复制代码
# 查看容器监听端口
docker port 容器名

# 查看容器网络 IP
docker inspect -f '{{.NetworkSettings.IPAddress}}' 容器名

# 查看所有容器及网络连接
docker network inspect bridge

# 检查容器是否能连通某地址
docker exec 容器名 ping 172.18.0.1

# 检查容器内端口监听情况
docker exec 容器名 netstat -tulnp
docker exec 容器名 ss -tuln

🐞 容器日志 & Debug

bash 复制代码
# 实时查看容器日志
docker logs -f 容器名

# 查看最近 100 行日志
docker logs --tail 100 容器名

# 进入容器交互终端
docker exec -it 容器名 /bin/bash

# 容器中查看环境变量
docker exec 容器名 printenv

# 临时运行一个交互式容器(测试用)
docker run --rm -it busybox /bin/sh

🧰 容器部署维护场景示例

🎯 示例:部署 Nginx 并挂载配置
bash 复制代码
docker run -d \
  --name nginx \
  -p 8080:80 \
  -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf \
  nginx
📋 示例:数据库容器 + 数据持久化
bash 复制代码
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -v /mydata/mysql:/var/lib/mysql \
  mysql:5.7

💡 小技巧

场景 命令
查看容器启动命令 docker inspect --format '{``{.Path}} {``{range .Args}} {``{.}} {``{end}}' 容器名
查看容器运行时间 docker ps -a --format "{``{.Names}}\t{``{.Status}}"
修改运行容器配置(需要重新创建) docker commit + docker run
使用容器网络联通测试 docker network connect 网络名 容器名

相关推荐
禁默10 分钟前
进程生命周期管理:从创建到终止的完整逻辑
linux·运维·服务器
不念霉运2 小时前
Gitee:本土化DevOps平台如何助力中国企业实现高效研发协作
运维·gitee·devops
爱喝水的鱼丶2 小时前
SAP-ABAP:ABAP Open SQL 深度解析:核心特性、性能优化与实践指南
运维·开发语言·数据库·sql·性能优化·sap·abap
liweiweili1263 小时前
Tomcat 服务器日志
java·运维·服务器·tomcat
Hey! Hey!7 小时前
在 Ubuntu 22.04 上运行 cAdvisor 时遇到 mountpoint for cpu not found 错误
linux·运维·ubuntu
朱小弟cs69 小时前
Orange的运维学习日记--23.Linux计划任务详解
linux·运维·学习
only_Klein9 小时前
K8S部署ELK(五):集成Kibana实现日志可视化
elk·容器·kubernetes
大大大大肉包10 小时前
linux中挂载磁盘和卸载
linux·运维·服务器
gs8014011 小时前
GitLab Docker Compose 迁移后 Redis 权限问题排查与解决
redis·docker·gitlab