前言
Docker 用起来方便,但命令多容易忘📌。
这份手册整理了日常最常用的 Docker 命令,从镜像、容器到网络和 Compose,一看就懂。
1、镜像(Image)操作
拉取镜像
# 拉取最新版
docker pull nginx
# 拉指定版本(推荐)
docker pull nginx:1.24-alpine
# 拉取多个镜像
docker pull mysql:8.0 redis:7.2查看镜像
docker images # 查看镜像列表
docker images -q # 仅显示镜像ID
docker images –format “{{.Repository}}:{{.Tag}}” # 自定义输出
删除镜像
docker rmi nginx:latest # 删除指定镜像
docker rmi $(docker images -q) # 删除所有镜像(慎用)
docker images | grep none # 查找无标签镜像
docker rmi $(docker images -q -f dangling=true) # 删除<none>镜像构建镜像
docker build -t myapp:v1 . # 从当前目录构建
docker build -f ./Dockerfile.prod -t myapp:prod .
docker build --no-cache -t myapp:v2 . # 不使用缓存
docker tag myapp:v1 myrepo/myapp:latest # 重命名标签2、容器(Container)操作
启动容器
docker run nginx # 简单运行
docker run -d -p 8080:80 --name web nginx # 后台运行 + 端口映射
docker run -d -v /data/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:8.0
docker run -d --memory=512m --cpus="0.5" nginx # 限制资源
docker run -it --rm alpine sh # 临时容器,用完即删查看容器
docker ps # 正在运行的容器
docker ps -a # 所有容器
docker ps -q # 仅显示容器ID
docker ps -n 5 # 最近5个
docker container ls --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"启停管理
docker stop my-nginx # 优雅停止
docker kill my-nginx # 强制停止
docker start my-nginx # 启动
docker restart my-nginx # 重启
docker pause my-nginx # 暂停容器
docker unpause my-nginx # 恢复容器删除容器
docker rm my-nginx # 删除已停止的容器
docker rm -f my-nginx # 强制删除
docker rm $(docker ps -aq -f status=exited) # 批量删退出的容器
docker container prune # 一键清理停止容器容器内操作
docker exec -it my-nginx bash # 进入容器(bash)
docker exec -it my-nginx sh # 没有bash的镜像
docker exec -u root -it my-nginx bash # 以root进入
docker exec my-nginx ls /etc/nginx # 执行命令
docker attach my-nginx # 直接附着容器控制台(退出请用 Ctrl+P+Q)3、日志管理
docker logs my-nginx
docker logs -f my-nginx # 实时查看
docker logs --tail 100 my-nginx # 最后100行
docker logs -t --tail 200 my-nginx # 带时间戳
docker logs -f --since 1h my-nginx # 最近1小时日志4、数据卷(Volume)
管理卷
docker volume create mydata
docker volume ls
docker volume inspect mydata
docker volume rm mydata
docker volume prune # 删除未使用的卷查看卷挂载
docker inspect -f '{{range .Mounts}}{{.Source}} -> {{.Destination}}{{end}}' my-nginx5、网络(Network)
网络管理
docker network ls
docker network inspect bridge
docker network create my-net
docker network connect my-net my-nginx
docker network disconnect my-net my-nginx
docker network prune # 删除未使用网络查看容器IP
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' my-nginx6、系统清理与空间分析
docker system df # 查看空间占用
docker container prune # 删除停止容器
docker image prune -a # 删除未使用镜像
docker volume prune # 删除未使用卷
docker system prune -a # 一键清理所有(慎用!)7、性能与资源监控
docker stats # 实时资源占用
docker stats my-nginx
docker top my-nginx # 查看容器内进程
docker inspect my-nginx # 查看详细信息8、镜像与容器导入导出
docker save -o nginx.tar nginx:latest
docker load -i nginx.tar
docker export my-nginx > nginx-container.tar
docker import nginx-container.tar my-nginx:v19、Docker Compose 常用命令
docker-compose up -d # 启动
docker-compose down # 停止
docker-compose ps # 状态
docker-compose logs -f # 实时日志
docker-compose restart # 重启所有
docker-compose restart nginx # 重启单个
docker-compose up -d --build # 重建并启动
docker-compose config # 验证配置文件10、额外推荐命令(补充实用)
| 功能 | 命令示例 |
|---|---|
| 查看Docker版本 | docker version |
| 查看系统信息 | docker info |
| 查看镜像层结构 | docker history nginx |
| 删除悬空镜像层 | docker image prune -f |
| 快速进入最后运行容器 | docker exec -it $(docker ps -lq) bash |
| 容器启动自动重启 | docker run -d --restart=always nginx |
| 容器内时间同步 | docker run -d -v /etc/localtime:/etc/localtime:ro nginx |
转载声明:
转载此文章请注明出处。
若本文内容侵犯了您的权益,请通过本站下方邮箱与我联系,我会尽快处理,谢谢!

发表回复