Docker命令最全详解(39个最常用命令)
ztj100 2025-07-21 19:11 5 浏览 0 评论
Docker是云原生的核心,也是大厂的必备技能,下面我就全面来详解Docker核心命令@mikechen
本文作者:陈睿|mikechen
文章来源:mikechen.cc
一、Docker 基本命令
docker info
显示 Docker 系统的详细信息,包括:容器数、镜像数、存储驱动…等。
比如:
$ docker infoClient: Context: default Debug Mode: false Server: Containers: 5 Running: 2 Paused: 0 Stopped: 3 Images: 8
docker version
显示客户端和服务端的版本信息。
比如:
$ docker versionClient: Version: 20.10.7 API version: 1.41 Go version: go1.16.5 ... Server: Version: 20.10.7 API version: 1.41 Go version: go1.16.5
二、镜像管理命令
docker pull <image_name>
从 Docker Hub 拉取镜像到本地。
比如:
$ docker pull ubuntu:latestlatest: Pulling from library/ubuntub8f5c7c582e4: Pull complete
docker push <image_name>
将本地镜像推送到 Docker Hub,比如:
$ docker push myusername/myimage:latestThe push refers to repository [docker.io/myusername/myimage]
docker build -t <tag_name> <path>
从 Dockerfile 构建镜像,并给镜像打上标签。
比如:
$ docker build -t myimage:1.0 .Sending build context to Docker daemon 2.048kBStep 1/3 : FROM ubuntu:latest...Successfully tagged myimage:1.0
docker images
列出本地所有的镜像。
比如:
REPOSITORY TAG IMAGE ID CREATED SIZEmy-nginx latest <IMAGE ID> 2 weeks ago 97.3MBubuntu latest <IMAGE ID> 3 weeks ago 72.9MB
docker rmi <image_name>
删除指定的镜像。
docker tag <source_image> <target_image>
为镜像打标签。
docker history <image_name>
查看镜像的历史层。
docker inspect <image_name>
查看镜像的详细信息,包括配置、层、依赖等。
三、容器管理命令
docker run <options> <image_name>
创建并启动一个新的容器。
比如:
docker run -d --name my-nginx -p 80:80 my-nginx
这会创建一个名为my-nginx的容器,并在后台运行,将容器的80端口映射到宿主机80端口。
常用参数:
-d:后台运行
-p <host_port>:<container_port>:端口映射
--name <container_name>:指定容器名称
-v <host_dir>:<container_dir>:挂载数据卷
--rm:容器退出时自动删除
docker ps
列出所有运行中的容器。
docker ps -a
列出所有容器(包括已停止的容器)。
比如:
$ docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES3f1e5b6f9a9f nginx:stable "/docker-entrypoint.…" 4 minutes ago Up 4 minutes 0.0.0.0:8080->80/tcp mynginx5ab2c8e5a6fe ubuntu:latest "/bin/bash" 2 days ago Exited (0) 24 hours ago ubuntu-container
docker exec -it <container_name> <command>
在运行中的容器中执行命令。常用于进入容器的命令行。
docker start <container_name>
启动一个已停止的容器。
docker stop <container_name>
停止一个正在运行的容器。
docker restart <container_name>
重启容器。
docker kill <container_name>
强制停止一个容器。
docker rm <container_name>
删除一个已停止的容器。
docker logs <container_name>
查看容器的日志。
docker top <container_name>
查看容器内进程信息。
docker stats
实时查看容器的资源使用情况(CPU、内存、网络等)。
docker attach <container_name>
连接到运行中的容器的主进程。
四、网络管理命令
docker network ls
列出所有 Docker 网络。
比如:
$ docker network lsNETWORK ID NAME DRIVER SCOPE1f407d35a3e9 bridge bridge local2e39f93861fc host host local
docker network inspect <network_name>
查看某个网络的详细信息。
docker network create <network_name>
创建一个新的 Docker 网络。
docker network connect <network_name> <container_name>
将容器连接到某个网络。
docker network disconnect <network_name> <container_name>
从网络中断开容器。
五、数据卷管理命令
docker volume ls
列出所有 Docker 数据卷。
比如:
$ docker volume lsDRIVER VOLUME NAMElocal myvolume
docker volume inspect <volume_name>
查看数据卷的详细信息。
比如:
$ docker volume inspect myvolume[ { "CreatedAt": "2021-10-01T07:35:00Z", "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/myvolume/_data", "Name": "myvolume", "Scope": "local" }]
查看数据卷 myvolume 的详细信息。
docker volume create <volume_name>
创建一个新的数据卷。
docker volume rm <volume_name>
删除指定的数据卷。
六、Docker 镜像和容器的清理命令
docker system prune
删除所有未使用的容器、网络和镜像。可以使用 -a 参数删除所有未被使用的镜像。
docker container prune
删除所有已停止的容器。
docker image prune
删除所有未使用的镜像。
docker volume prune
删除所有未使用的数据卷。
docker network prune
删除所有未使用的网络。
七、Docker Compose 相关命令
docker-compose up
启动服务,根据 docker-compose.yml 文件启动多个容器。
比如:
$ docker-compose upCreating network "myapp_default" with the default driverCreating myapp_db_1 ... doneCreating myapp_web_1 ... done
根据 docker-compose.yml 启动服务。
docker-compose down
停止并删除服务和容器。
docker-compose logs
查看 Docker Compose 启动的服务的日志。
docker-compose build
构建服务。
八、其他常用命令
docker info
显示 Docker 系统的详细信息。
docker events
查看 Docker 守护进程的事件流。
docker save <image_name> > <file_name>.tar
将镜像保存为一个 .tar 文件。
docker load < <file_name>.tar
从 .tar 文件加载 Docker 镜像。
docker login
登录 Docker Hub 或其他 Docker 注册中心。
docker logout
登出 Docker Hub 或其他 Docker 注册中心。
本文作者:陈睿|mikechen
文章来源:mikechen.cc
相关推荐
- 新手学Docker:挂载卷Volumes(docker挂载nfs卷)
-
默认情况下,在容器内创建的文件,都会保存在容器基于镜像之上的一个可读写层。但是,这一层是依赖于容器而存在的,当容器不存在时,这些数据也就不存在了。而且这些数据紧紧的耦合在容器内部,很难将这些数据导出。...
- Docker命令最全详解(39个最常用命令)
-
Docker是云原生的核心,也是大厂的必备技能,下面我就全面来详解Docker核心命令@mikechen本文作者:陈睿|mikechen文章来源:mikechen.cc一、Docker基本命令...
- 松勤软件测试:详解Docker,如何用portainer管理Docker容器
-
镜像管理搜索镜像dockersearch镜像名称拉取镜像dockerpullname[:tag]列出镜像dockerimages删除镜像dockerrmiimage名称或id删除...
- 【Docker 新手入门指南】第十四章:Docker常用命令
-
以下Docker常用命令大全,涵盖容器、镜像、网络、数据卷及系统管理等核心操作,结合分类与示例助你快速掌握:一、容器生命周期管理...
- Docker 一键清盘术,释放磁盘空间不求人
-
在日常开发和运维中,Docker容器化让我们的工作更高效,但不知不觉中,磁盘空间却被镜像、容器和卷悄悄吃掉。今天教你一套干净利落的Docker磁盘清理攻略,让你轻松腾出宝贵空间!一、快速查看磁盘...
- 第六节 Docker 容器核心操作与实践指南
-
一、镜像与容器的本质关系(一)镜像(Image)的核心特性静态模板:包含应用运行所需的所有依赖(系统库、运行时、配置文件等)不可变性:镜像构建完成后内容不可修改,确保环境一致性...
- 别再去找Docker命令了,你要的常用的全都在这
-
Docker常用命令集合给大家介绍一些常用的Docker命令,对你有帮助的同学建议收藏作为一个查询手册哦。Docker容器的一些命令按功能分类大致如下:Docker环境信息info、versio...
- Docker 数据持久化最佳实践:Volume 使用全指南
-
你是不是也经常在使用Docker的时候,遇到“数据持久化”相关的困惑?容器删了,数据也跟着没了?今天就带你深入了解Docker的Volume机制,搞懂什么是Volume、怎么使用、存储在...
- 【Docker 新手入门指南】第十五章:常见故障排除
-
一、前期准备:收集关键信息在排查问题前,建议先获取以下系统数据,便于精准定位故障:...
- Docker网络与iptables实战指南:从原理到安全加固
-
一、Docker网络核心原理:容器与iptables的“共生关系”Docker容器的网络能力依赖于Linux内核的两大核心技术:虚拟网络设备(vethpair、网桥)和iptables规则链。以默认...
- 别再docker exec了!盘点进入容器排错的5种“更优雅”姿势
-
一、dockerattach:直接“附身”容器的原始方法当容器日志疯狂刷屏时,dockerattach就像直接跳进正在行驶的汽车——能看到仪表盘数据,但方向盘不在你手上。这种直接附加到容器主进程的...
- 云计算核心技术Docker教程:Docker数据卷的使用
-
在生产环境中使用Docker,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束)或者需要在多个容器之间进行数据共享,需要将数据从宿主机挂载到容器中,这就会...
- 【开发技术】Mybatis中进行多表关联查询?性能是不是会变好呢?
-
Mybatis是一种基于Java的持久层框架,能够帮助我们操作数据库。在Mybatis中,进行多表关联的整合查询,需要使用嵌套查询或者使用ResultMap进行映射。下面,我们将从这两个方面来介绍多表...
- Mybatis 批量更新数据 Mysql批量更新数据
-
通常如果需要一次更新多条数据有两个方式,(1)在业务代码中循环遍历逐条更新。(2)一次性更新所有数据1批量更新相同的值不同的条件...
- Mybatis 如何批量删除数据(mybatis批量merge)
-
Mybatis如何批量删除数据本期以最常用的根据id批量删除数据为例:接口设计1:List类型单参数IntegerdeleteByIds(List<Integer>ids);...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- idea eval reset (50)
- vue dispatch (70)
- update canceled (42)
- order by asc (53)
- spring gateway (67)
- 简单代码编程 贪吃蛇 (40)
- transforms.resize (33)
- redisson trylock (35)
- 卸载node (35)
- np.reshape (33)
- torch.arange (34)
- npm 源 (35)
- vue3 deep (35)
- win10 ssh (35)
- vue foreach (34)
- idea设置编码为utf8 (35)
- vue 数组添加元素 (34)
- std find (34)
- tablefield注解用途 (35)
- python str转json (34)
- java websocket客户端 (34)
- tensor.view (34)
- java jackson (34)
- vmware17pro最新密钥 (34)
- mysql单表最大数据量 (35)