落叶的心思的博客

一个记录与折腾的小站

分享 Docker 高频命令实操手册

发布时间:

发布者:

分类:

阅读数:

11

点赞数:

0

阅读时长预计:

9 分钟

前言

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-nginx

5、网络(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-nginx

6、系统清理与空间分析

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:v1

9、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

转载声明:

转载此文章请注明出处。

若本文内容侵犯了您的权益,请通过本站下方邮箱与我联系,我会尽快处理,谢谢!

分享到:

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注