Linux Docker 运维详细命令大全
·
说明:
[]代表可选参数,<>代表必填;-d后台运行,-p端口映射,-v数据卷,--name指定容器名。
一、基础信息查看
# docker版本信息
docker version
系统信息,镜像、容器、存储驱动
docker info
帮助
docker --help
docker 命令 --help
二、镜像操作(image)
# 搜索镜像
docker search nginx
拉取镜像,不加tag默认latest
docker pull nginx
docker pull nginx:1.25
列出本地镜像
docker images
docker image ls
删除镜像(镜像ID/镜像名:tag)
docker rmi 镜像ID
docker rmi nginx:1.25
强制删除镜像
docker rmi -f 镜像ID
删除所有未使用镜像
docker image prune
删除所有未使用(包括未被容器使用)
docker image prune -a
导出镜像为tar包
docker save -o nginx.tar nginx:1.25
导入tar镜像
docker load -i nginx.tar
根据容器制作镜像(提交)
docker commit [参数] 容器ID 新镜像名:tag
示例
docker commit -a="author" -m="test" 容器ID mynginx:v1
查看镜像分层历史
docker history nginx:1.25
三、容器操作(container)
1. 创建并启动容器 docker run
# 常用完整示例
docker run -d \
--name nginx-demo \
-p 8080:80 \
-v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/conf:/etc/nginx/conf.d \
--restart always \
nginx:1.25
参数解释
-d 后台守护进程运行
--name 容器名字
-p 宿主机端口:容器内部端口 端口映射
-v 宿主机目录:容器目录 数据卷挂载
--restart always 开机自启;可选 no/on-failure/unless-stopped
--network host 使用主机网络,不需要-p映射端口
-e KEY=VALUE 设置环境变量,-e TZ=Asia/Shanghai 设置时区
--privileged=true 特权模式(慎用)
--rm 容器退出自动删除(测试用)
-it 交互式终端,进入容器
2. 容器生命周期
# 列出正在运行容器
docker ps
列出所有容器(包含停止的)
docker ps -a
启动已存在容器
docker start 容器ID/容器名
停止容器(优雅关闭)
docker stop 容器ID
强制杀死容器
docker kill 容器ID
重启容器
docker restart 容器ID
删除停止的容器
docker rm 容器ID
强制删除正在运行容器
docker rm -f 容器ID
清理所有停止的容器
docker container prune
3. 进入容器
# 最常用,推荐
docker exec -it 容器ID /bin/bash
如果容器没有bash,用sh
docker exec -it 容器ID /bin/sh
attach(不推荐,退出会停止容器)
docker attach 容器ID
4. 容器文件拷贝
# 宿主机 → 容器
docker cp 本地文件路径 容器ID:/容器内路径
容器 → 宿主机
docker cp 容器ID:/容器内文件 宿主机路径
示例
docker cp index.html nginx-demo:/usr/share/nginx/html/
docker cp nginx-demo:/etc/nginx/nginx.conf ./
5. 查看容器详情、日志、资源
# 容器详细json信息(IP、挂载、环境变量等)
docker inspect 容器ID
查看容器日志
docker logs 容器ID
-f 实时跟踪日志,--tail 行数,--since 指定时间
docker logs -f --tail 200 容器ID
docker logs -f --since "2026-08-25" 容器ID
查看容器cpu内存实时资源占用
docker stats
docker stats 容器ID
查看容器内部进程
docker top 容器ID
四、数据卷 volume(持久化)
# 创建数据卷
docker volume create nginx-data
查看所有数据卷
docker volume ls
查看数据卷详情(宿主机实际路径)
docker volume inspect nginx-data
删除未使用数据卷
docker volume prune
删除指定数据卷
docker volume rm nginx-data
使用数据卷启动容器
docker run -d --name nginx -v nginx-data:/usr/share/nginx/html nginx
两种挂载区别:
-v 卷名:/容器路径:docker 管理数据卷,存放在 docker 目录-v /宿主机绝对路径:/容器路径:绑定挂载 bind mount,自定义宿主机目录
五、网络 docker network
# 查看docker网络
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 prune
启动容器指定网络
docker run -d --name app --network my-net nginx
host网络模式:直接复用宿主机网络栈,无需-p
docker run -d --network host nginx
网络模式:
- bridge:默认,容器之间隔离
- host:主机网络
- none:无网络
- custom:自定义桥接,容器可通过容器名互相访问DNS解析
六、Dockerfile构建镜像
# -t 指定镜像名:tag .代表Dockerfile所在当前目录
docker build -t myapp:v1 .
指定Dockerfile文件名
docker build -f Dockerfile-prod -t myapp:v2 .
简单Dockerfile示例
FROM nginx:1.25
COPY index.html /usr/share/nginx/html/
EXPOSE 80
CMD ["nginx","-g","daemon off;"]
七、Docker Compose(运维高频)
管理多容器,
docker-compose.yml配置文件
# 前台启动
docker-compose up
后台启动
docker-compose up -d
停止容器,不删除
docker-compose stop
停止并删除容器、网络,保留卷
docker-compose down
down同时删除数据卷
docker-compose down -v
查看日志
docker-compose logs -f
重启服务
docker-compose restart
构建镜像并启动
docker-compose up -d --build
列出compose容器
docker-compose ps
进入compose容器
docker-compose exec 服务名 bash
八、系统清理(运维常用,磁盘满的时候)
# 清理全部:停止容器、无用镜像、网络、未使用卷
docker system prune
危险!清理所有没有被使用的资源(包括未使用镜像、卷)
docker system prune -a --volumes
九、运维实战高频示例
1启动mysql
docker run -d \
--name mysql8 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /data/mysql:/var/lib/mysql \
--restart always \
mysql:8.0
2修改已经运行容器端口:
docker run一旦启动,不能直接修改参数,两种方案
docker inspect拿到配置,导出配置修改,重启(麻烦)- 推荐:重新run新容器,复制挂载配置
3导出容器配置
docker inspect 容器ID > container.json
十、排错常用命令总结
# 容器启动失败,先看日志
docker logs 容器ID
看完整元数据,找IP、挂载、环境变量
docker inspect 容器ID
看磁盘占用
docker system df
看实时资源
docker stats
常用参数速查表
| 参数 | 作用 |
|---|---|
| -d | 后台运行 |
| -it | 交互式终端 |
| -p hostPort:containerPort | 端口映射 |
| -v hostPath:containerPath | 挂载目录 |
| -e K=V | 设置环境变量 |
| --name | 设置容器名称 |
| --restart always | 开机自启 |
| --network | 指定网络 |
更多推荐
所有评论(0)