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
从 Docker Hub 拉取镜像到本地。
比如:
$ docker pull ubuntu:latestlatest: Pulling from library/ubuntub8f5c7c582e4: Pull complete
docker push
将本地镜像推送到 Docker Hub,比如:
$ docker push myusername/myimage:latestThe push refers to repository [docker.io/myusername/myimage]
docker build -t
从 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 2 weeks ago 97.3MBubuntu latest 3 weeks ago 72.9MB
docker rmi
删除指定的镜像。
docker tag
为镜像打标签。
docker history
查看镜像的历史层。
docker inspect
查看镜像的详细信息,包括配置、层、依赖等。
三、容器管理命令
docker run
创建并启动一个新的容器。
比如:
docker run -d --name my-nginx -p 80:80 my-nginx
这会创建一个名为my-nginx的容器,并在后台运行,将容器的80端口映射到宿主机80端口。
常用参数:
-d:后台运行
-p
--name
-v
--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
在运行中的容器中执行命令。常用于进入容器的命令行。
docker start
启动一个已停止的容器。
docker stop
停止一个正在运行的容器。
docker restart
重启容器。
docker kill
强制停止一个容器。
docker rm
删除一个已停止的容器。
docker logs
查看容器的日志。
docker top
查看容器内进程信息。
docker stats
实时查看容器的资源使用情况(CPU、内存、网络等)。
docker attach
连接到运行中的容器的主进程。
四、网络管理命令
docker network ls
列出所有 Docker 网络。
比如:
$ docker network lsNETWORK ID NAME DRIVER SCOPE1f407d35a3e9 bridge bridge local2e39f93861fc host host local
docker network inspect
查看某个网络的详细信息。
docker network create
创建一个新的 Docker 网络。
docker network connect
将容器连接到某个网络。
docker network disconnect
从网络中断开容器。
五、数据卷管理命令
docker volume ls
列出所有 Docker 数据卷。
比如:
$ docker volume lsDRIVER VOLUME NAMElocal myvolume
docker volume inspect
查看数据卷的详细信息。
比如:
$ 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
创建一个新的数据卷。
docker volume rm
删除指定的数据卷。
六、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
将镜像保存为一个 .tar 文件。
docker load <
从 .tar 文件加载 Docker 镜像。
docker login
登录 Docker Hub 或其他 Docker 注册中心。
docker logout
登出 Docker Hub 或其他 Docker 注册中心。
本文作者:陈睿|mikechen
文章来源:mikechen.cc