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 网络名 容器名

相关推荐
少妇的美梦19 小时前
logstash教程
运维
容器魔方20 小时前
Bloomberg 正式加入 Karmada 用户组!
云原生·容器·云计算
chen94520 小时前
k8s集群部署vector日志采集器
运维
chen94520 小时前
aws ec2部署harbor,使用s3存储
运维
muyun28001 天前
Docker 下部署 Elasticsearch 8 并集成 Kibana 和 IK 分词器
elasticsearch·docker·容器
東雪蓮☆1 天前
深入理解 LVS-DR 模式与 Keepalived 高可用集群
linux·运维·服务器·lvs
qq_264220891 天前
LVS负载均衡群集和LVS+Keepalived群集
运维·负载均衡·lvs
乌萨奇也要立志学C++1 天前
【Linux】进程概念(二):进程查看与 fork 初探
linux·运维·服务器
雨落Liy1 天前
Nginx 从入门到进阶:反向代理、负载均衡与高性能实战指南
运维·nginx·负载均衡
Nazi61 天前
k8s的dashboard
云原生·容器·kubernetes