以下是 Docker 常用指令的表格汇总,按功能分类整理,便于日常查阅。
一、镜像管理
| 命令 | 说明 | 示例 |
|---|---|---|
docker images |
列出本地所有镜像 | docker images |
docker pull <镜像名> |
从仓库拉取镜像 | docker pull nginx:alpine |
docker push <镜像名> |
将镜像推送到仓库 | docker push myrepo/nginx:v1 |
docker build -t <名称> <路径> |
从 Dockerfile 构建镜像 | docker build -t myapp . |
docker rmi <镜像ID或名称> |
删除一个或多个镜像 | docker rmi nginx:alpine |
docker tag <源镜像> <目标镜像> |
给镜像打标签 | docker tag nginx mynginx:1.0 |
docker save -o <文件.tar> <镜像> |
导出镜像为 tar 文件 | docker save -o nginx.tar nginx:alpine |
docker load -i <文件.tar> |
从 tar 文件导入镜像 | docker load -i nginx.tar |
docker history <镜像> |
查看镜像的构建历史(分层) | docker history nginx:latest |
docker inspect <镜像> |
查看镜像的详细信息(JSON) | docker inspect nginx |
docker image prune |
删除所有悬空镜像(无标签) | docker image prune -a(删除所有未使用镜像) |
二、容器管理
| 命令 | 说明 | 示例 |
|---|---|---|
docker run <镜像> |
创建并启动一个新容器 | docker run -d -p 8080:80 --name web nginx |
docker ps |
列出正在运行的容器 | docker ps -a(列出所有容器,含停止的) |
docker stop <容器> |
停止一个或多个运行中的容器 | docker stop web |
docker start <容器> |
启动一个已停止的容器 | docker start web |
docker restart <容器> |
重启容器 | docker restart web |
docker rm <容器> |
删除一个或多个容器 | docker rm -f web(强制删除) |
docker exec -it <容器> <命令> |
在运行中的容器内执行命令 | docker exec -it web bash |
docker logs <容器> |
查看容器日志 | docker logs -f web(实时跟踪) |
docker inspect <容器> |
查看容器的详细配置信息 | docker inspect web |
docker cp <源路径> <容器:目标路径> |
在宿主机和容器之间复制文件 | docker cp ./index.html web:/usr/share/nginx/html/ |
docker commit <容器> <新镜像名> |
将容器保存为新镜像(不推荐) | docker commit web myweb:v1 |
docker pause <容器> |
暂停容器内所有进程 | docker pause web |
docker unpause <容器> |
恢复被暂停的容器 | docker unpause web |
docker wait <容器> |
等待容器停止并返回退出码 | docker wait web |
docker export <容器> -o <文件.tar> |
导出容器的文件系统为 tar | docker export web -o web.tar |
docker import <文件.tar> <镜像名> |
从 tar 文件导入为镜像 | docker import web.tar myweb:latest |
docker container prune |
删除所有已停止的容器 | docker container prune |
三、网络管理
| 命令 | 说明 | 示例 |
|---|---|---|
docker network ls |
列出所有网络 | docker network ls |
docker network create <网络名> |
创建自定义网络 | docker network create --driver bridge mynet |
docker network inspect <网络> |
查看网络详情(含连接的容器) | docker network inspect mynet |
docker network connect <网络> <容器> |
将容器连接到网络 | docker network connect mynet web |
docker network disconnect <网络> <容器> |
将容器从网络断开 | docker network disconnect mynet web |
docker network rm <网络> |
删除指定网络 | docker network rm mynet |
docker network prune |
删除所有未使用的网络 | docker network prune |
四、数据卷管理
| 命令 | 说明 | 示例 |
|---|---|---|
docker volume ls |
列出所有数据卷 | docker volume ls |
docker volume create <卷名> |
创建一个数据卷 | docker volume create mydata |
docker volume inspect <卷> |
查看卷的详细信息 | docker volume inspect mydata |
docker volume rm <卷> |
删除一个数据卷 | docker volume rm mydata |
docker volume prune |
删除所有未使用的数据卷 | docker volume prune |
五、系统管理
| 命令 | 说明 | 示例 |
|---|---|---|
docker version |
显示 Docker 客户端和服务器版本 | docker version |
docker info |
显示 Docker 系统信息(容器数、镜像数等) | docker info |
docker system df |
查看磁盘使用情况(镜像、容器、卷) | docker system df |
docker system prune |
删除所有未使用的资源(容器、网络、镜像、构建缓存) | docker system prune -a(彻底清理) |
docker events |
实时查看 Docker 守护进程事件 | docker events --filter event=start |
docker stats |
实时查看容器的资源占用(CPU、内存等) | docker stats web |
docker login |
登录到镜像仓库(如 Docker Hub) | docker login -u username |
docker logout |
登出镜像仓库 | docker logout |
docker search <关键词> |
在 Docker Hub 中搜索镜像 | docker search nginx |
六、Docker Compose 常用命令
| 命令 | 说明 | 示例 |
|---|---|---|
docker compose up |
创建并启动所有服务 | docker compose up -d(后台运行) |
docker compose down |
停止并删除所有容器、网络 | docker compose down -v(同时删除卷) |
docker compose ps |
列出项目中的容器状态 | docker compose ps |
docker compose logs |
查看所有服务的日志 | docker compose logs -f web |
docker compose exec <服务> <命令> |
在指定服务容器中执行命令 | docker compose exec web bash |
docker compose build |
构建或重新构建服务镜像 | docker compose build --no-cache |
docker compose pull |
拉取所有服务的最新镜像 | docker compose pull |
docker compose push |
推送所有服务镜像到仓库 | docker compose push |
docker compose restart |
重启所有或指定服务 | docker compose restart web |
docker compose stop |
停止所有或指定服务 | docker compose stop db |
docker compose start |
启动已停止的服务 | docker compose start |
docker compose rm |
删除已停止的容器 | docker compose rm -f |
docker compose config |
验证并查看合并后的 Compose 配置 | docker compose config |
docker compose top |
显示各服务容器内运行的进程 | docker compose top |
七、Docker Swarm 常用命令
| 命令 | 说明 | 示例 |
|---|---|---|
docker swarm init |
初始化一个 Swarm 集群 | docker swarm init --advertise-addr 192.168.1.10 |
docker swarm join |
加入一个已有的 Swarm 集群 | docker swarm join --token <token> 192.168.1.10:2377 |
docker swarm leave |
离开 Swarm 集群 | docker swarm leave --force(强制离开管理节点) |
docker node ls |
列出集群中的所有节点 | docker node ls |
docker node inspect <节点> |
查看节点详细信息 | docker node inspect node1 |
docker node update |
更新节点属性(如角色、可用性) | docker node update --role manager node2 |
docker service create |
创建一个服务 | docker service create --name web --replicas 3 -p 8080:80 nginx |
docker service ls |
列出所有服务 | docker service ls |
docker service ps <服务> |
查看服务下的任务(容器)分布 | docker service ps web |
docker service scale |
扩缩容服务副本数 | docker service scale web=5 |
docker service update |
更新服务的配置或镜像 | docker service update --image nginx:alpine web |
docker service rm <服务> |
删除一个服务 | docker service rm web |
docker stack deploy |
使用 Compose 文件部署应用栈 | docker stack deploy -c docker-compose.yml myapp |
docker stack ls |
列出所有应用栈 | docker stack ls |
docker stack ps <栈名> |
列出栈中的所有任务 | docker stack ps myapp |
docker stack rm <栈名> |
删除应用栈 | docker stack rm myapp |