Docker命令大全
1. 基础信息 & 守护进程
docker --version # 查看版本
docker info # 查看docker系统信息
docker --help # 全局帮助
docker 子命令 --help # 查看子命令帮助
systemctl start docker # 启动docker(centos/ubuntu)
systemctl stop docker # 停止docker
systemctl restart docker # 重启docker
systemctl enable docker # 设置开机自启
2. 镜像操作 image
docker images # 列出本地镜像
docker images -a # 列出所有镜像(含中间层)
docker pull nginx # 拉取镜像,默认latest
docker pull nginx:1.25
docker search nginx # 搜索镜像(不推荐,优先hub)
# 构建镜像
docker build -t myapp:1.0 . # 当前目录Dockerfile构建,打标签
docker build -f ./Dockerfile.prod -t myapp:prod .
docker tag myapp:1.0 myapp:latest # 给镜像新增标签
docker push myapp:1.0 # 推送镜像到仓库(私有仓库/harbor)
docker rmi 镜像id/镜像名 # 删除镜像
docker rmi -f 镜像id # 强制删除
docker image prune # 清理悬空镜像 <none>
docker image prune -a # 清理所有未被使用镜像
# 导入导出镜像
docker save -o myapp.tar myapp:1.0 # 导出镜像到tar包
docker load -i myapp.tar # 从tar包导入镜像
3. 容器生命周期(核心run参数)
# run常用参数说明
# -d 后台运行 | --name 指定名字 | -p 宿主机:容器端口
# -v 挂载卷 | -e 环境变量 | --restart 重启策略
docker run -d --name nginx-demo -p 80:80 nginx
docker run -it --name ubuntu-demo ubuntu /bin/bash # 交互式启动,进入终端
docker ps # 查看正在运行容器
docker ps -a # 查看所有容器(包含停止)
docker ps -q # 只输出容器id
docker start 容器名/id
docker stop 容器名/id # 优雅停止(等待超时)
docker restart 容器名/id
docker kill 容器名/id # 强制杀死容器
docker pause 容器名/id # 暂停容器
docker unpause 容器名/id # 恢复暂停
docker rm 容器id # 删除已停止容器
docker rm -f 容器id # 强制删除运行中容器
docker rm $(docker ps -aq) # 删除全部容器(慎用)
docker rename old new # 容器重命名
4. 容器内交互、日志、文件拷贝
docker logs 容器名 # 查看日志
docker logs -f 容器名 # 实时跟踪日志
docker logs -f --tail 200 容器名 # 只跟踪最后200行
docker exec -it 容器id /bin/sh # 进入运行中容器(推荐)
docker exec -it 容器id bash
docker attach 容器id # 附加到容器主进程(不推荐,退出会停容器)
docker top 容器id # 查看容器内进程
docker stats # 实时监控容器cpu/内存/IO
docker inspect 容器id # 查看容器详细json信息(IP、挂载、配置)
docker port 容器id # 查看端口映射
# 文件拷贝 宿主机 <-> 容器
docker cp 容器id:/app/log ./log # 容器文件拷贝到宿主机
docker cp ./config.yml 容器id:/app/ # 宿主机文件传到容器
docker diff 容器id # 查看容器内文件改动
5. 数据卷 volume(持久化)
docker volume ls # 列出数据卷
docker volume create my-data # 创建数据卷
docker volume inspect my-data # 查看卷详情
docker volume rm my-data # 删除卷
docker volume prune # 清理未被使用的数据卷
# 使用卷启动示例
docker run -d -v my-data:/data nginx
6. 网络 network
docker network ls # 查看网络
docker network create my-net # 创建自定义桥接网络
docker network inspect my-net
docker network connect my-net 容器名 # 容器加入网络
docker network disconnect my-net 容器名
docker network rm my-net
docker network prune # 清理无用网络
7. 系统清理(日常运维,非常高频)
docker system df # 查看docker磁盘占用
docker system prune # 清理停止容器、悬空镜像、无用网络
docker system prune -a # 清理全部未使用镜像(小心)
docker system prune --volumes # 同时清理无用卷
8. Docker Compose(新版命令,docker compose 无短横线)
注意:新版是
docker compose,旧版docker-compose已废弃
docker compose up # 前台启动
docker compose up -d # 后台启动服务(最常用)
docker compose up -d --build # 先构建镜像再启动
docker compose down # 停止并删除容器、网络(默认保留volume)
docker compose down -v # 停止并删除 + 删除数据卷(谨慎!)
docker compose ps # 查看compose服务状态
docker compose logs # 查看日志
docker compose logs -f # 实时日志
docker compose logs -f service-name # 只看某个服务日志
docker compose build # 构建镜像
docker compose pull # 拉取镜像
docker compose restart # 重启所有服务
docker compose restart nginx
docker compose stop # 停止服务,不删除
docker compose start
docker compose exec nginx bash # 进入compose内的容器
docker compose top
docker compose config # 校验yml配置是否正确
docker compose ls # 列出当前运行的compose项目
9. 私有仓库 & 登录
docker login # 登录docker hub
docker login harbor.xxx.com # 登录私有harbor仓库
docker logout
10. 高频 run 参数汇总(写脚本必背)
-d # 后台守护运行
--name # 容器名称
-p host:con # 端口映射
-v # 挂载(卷/宿主机目录)
-e KEY=VAL # 环境变量
--restart=always # 容器退出自动重启
--restart=on-failure # 异常退出才重启
--network # 指定网络
--memory 512m # 内存限制
--cpus 0.5 # cpu核数限制
需要我继续按这个一模一样的格式输出下一个:Nginx 吗?