Skip to main content

docker

  • 预计阅读时间:8 分钟

一句话总结:

Docker 命令是开发和运维必备技能,掌握常用命令和进阶玩法,轻松玩转容器世界!

Docker 常用命令与高级进阶命令详解

Docker 基本命令速查 🚀

镜像操作

docker images

查看本地所有镜像

docker pull 镜像名[:tag]

拉取镜像,例:docker pull nginx:latest

docker rmi 镜像ID/镜像名

删除镜像

docker build -t myimg:1.0 .

构建镜像

容器操作

列出正在运行(或全部)的容器

docker ps [-a]

运行一个容器(交互模式/指定端口/命名)

docker run -it --name mynginx -p 80:80 nginx

启动、停止、重启容器

docker start/stop/restart 容器ID/容器名

删除容器(要先 stop)

docker rm 容器ID/容器名

进入正在运行的容器终端

docker exec -it 容器ID/容器名 bash

实时查看容器日志

docker logs -f 容器ID/容器名

网络与数据卷

查看所有网络

docker network ls

新建网络

docker network create mynet

查看所有数据卷

docker volume ls

新建数据卷

docker volume create myvol

Docker 高级进阶命令 ✨

镜像管理

批量删除无用镜像/容器/卷:

docker system prune -a # 一键清理所有无用资源

docker image prune # 清理未被使用的镜像

docker container prune # 清理已退出的容器

docker volume prune # 清理无主的数据卷

查看镜像构建历史:

docker history 镜像名

导出/导入镜像:

docker save -o myimg.tar 镜像名

docker load -i myimg.tar

容器高级操作

资源限制:

docker run -m 512m --cpus=1 nginx

限制容器内存 512MB,CPU 1核

拷贝文件进/出容器:

docker cp 本地文件 容器ID:/容器路径

docker cp 容器ID:/容器路径 本地文件

容器 commit(生成新镜像):

docker commit 容器ID 新镜像名:tag

查看容器资源消耗:

docker stats

容器健康检查(需 Dockerfile 配置 HEALTHCHECK):

docker inspect --format='{{json .State.Health}}' 容器ID

网络相关

让两个容器互通:

docker network create mynet

docker run --network=mynet --name foo busybox sleep 3600

docker run --network=mynet --name bar busybox sleep 3600

foo和bar可以直接用容器名互相 ping

端口映射与多端口:

docker run -p 80:80 -p 443:443 nginx

调试与排障技巧

查看容器详细信息(JSON):

docker inspect 容器ID/容器名

查看容器内进程:

docker top 容器ID

临时进入容器进行排查:

docker exec -it 容器ID /bin/sh

bash 不存在时用 /bin/sh

“一键删除所有容器/镜像”:

docker rm -f $(docker ps -aq)

docker rmi -f $(docker images -q)

Compose 和多容器编排

一键启动服务栈:

docker-compose up -d

关闭并移除所有服务:

docker-compose down

查看 compose 日志:

docker-compose logs -f

总结一句话 🎯

Docker 命令很简单,进阶玩法很强大,开发和运维都得会,用得多就能玩转容器生态!

如果需要具体某个命令的详细讲解或者更多进阶玩法,欢迎随时问我!