易考八股文之 Docker 常用命令
Docker 是一个开源的应用容器引擎,广泛用于软件开发、持续集成、持续交付等场景。它能够将应用程序及其依赖打包成一个标准化的单元(容器),从而确保应用在任何环境中的一致性。随着 DevOps 和云计算的流行,Docker 已经成为现代软件开发和运维中不可或缺的工具。
本文将详细介绍 Docker 的常用命令,并通过案例、场景或者实例加以说明,帮助读者掌握 Docker 常用命令的使用。
目录
- Docker 命令概览
- 1. Docker 镜像命令
docker pull
拉取镜像docker build
构建镜像docker images
查看镜像docker rmi
删除镜像docker tag
给镜像打标签
- 2. Docker 容器命令
docker run
运行容器docker ps
查看运行中的容器docker exec
执行容器内命令docker stop
停止容器docker start
启动容器docker rm
删除容器
- 3. Docker 网络命令
docker network ls
列出网络docker network create
创建网络docker network connect
连接容器到网络docker network disconnect
断开容器与网络的连接
- 4. Docker 数据卷命令
docker volume ls
列出卷docker volume create
创建卷docker volume rm
删除卷
- 5. Docker 配置命令
docker info
查看 Docker 系统信息docker version
查看 Docker 版本docker stats
查看容器资源使用情况
- 6. Docker 守护进程命令
docker daemon
启动 Docker 守护进程docker stop
停止 Docker 守护进程
Docker 命令概览
Docker 提供了大量的命令来管理容器、镜像、网络和数据卷。掌握这些命令对于开发、测试和部署容器化应用程序非常重要。Docker 命令大致可以分为以下几类:
- 镜像管理命令:包括镜像的拉取、构建、删除等操作。
- 容器管理命令:包括容器的创建、启动、停止、删除等操作。
- 网络管理命令:用于管理 Docker 的网络设置。
- 数据卷管理命令:用于管理 Docker 容器的数据卷。
- 系统和守护进程命令:查看 Docker 系统信息、守护进程操作等。
下面我们将详细介绍这些常用命令,并通过具体场景进行示例。
1. Docker 镜像命令
Docker 镜像是容器的模板,是构建 Docker 容器的基础。常见的镜像命令包括 docker pull
、docker build
、docker images
、docker rmi
和 docker tag
。
docker pull
拉取镜像
docker pull
命令用于从 Docker Hub 或其他镜像仓库拉取镜像。Docker Hub 是 Docker 默认的镜像仓库,用户可以通过这个命令下载官方或第三方的镜像。
示例
bashCopy Codedocker pull nginx:latest
这条命令会从 Docker Hub 下载最新版本的 nginx
镜像。下载完成后,可以通过 docker images
查看本地镜像。
docker build
构建镜像
docker build
命令用于从 Dockerfile 构建一个自定义的 Docker 镜像。Dockerfile 是一个文本文件,包含了一组指令,描述了如何构建一个镜像。
示例
假设我们有一个名为 Dockerfile
的文件,内容如下:
dockerfileCopy CodeFROM ubuntu:20.04
RUN apt-get update && apt-get install -y nginx
COPY ./index.html /var/www/html/index.html
CMD ["nginx", "-g", "daemon off;"]
这个 Dockerfile 文件定义了如何构建一个带有 Nginx 服务的镜像,并将本地的 index.html
文件复制到容器的指定目录。
通过以下命令构建镜像:
bashCopy Codedocker build -t mynginx .
该命令会在当前目录下查找 Dockerfile 文件,并构建一个名为 mynginx
的镜像。
docker images
查看镜像
docker images
命令用于列出本地 Docker 镜像。它会显示镜像的仓库、标签、镜像 ID、创建时间和大小等信息。
示例
bashCopy Codedocker images
输出示例:
Copy CodeREPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 7c7a8a6d9f53 3 days ago 133MB
mynginx latest 0abf3f9d2993 2 minutes ago 212MB
docker rmi
删除镜像
docker rmi
命令用于删除一个或多个镜像。如果镜像正在被某个容器使用,则删除镜像时会提示无法删除。
示例
bashCopy Codedocker rmi nginx:latest
如果该镜像没有被使用,它将被删除。删除镜像时,可以加上 -f
强制删除。
bashCopy Codedocker rmi -f nginx:latest
docker tag
给镜像打标签
docker tag
命令用于为镜像打标签。标签用于区分不同版本的镜像或创建镜像的不同标识。
示例
bashCopy Codedocker tag mynginx:latest myrepo/mynginx:v1.0
这条命令将 mynginx
镜像打上 myrepo/mynginx:v1.0
标签。你可以将标签用于推送镜像到 Docker Hub 或其他镜像仓库。
2. Docker 容器命令
容器是 Docker 的核心组成部分。Docker 容器是由镜像启动的实例,是在隔离的环境中运行应用程序的地方。常见的容器命令包括 docker run
、docker ps
、docker exec
、docker stop
、docker start
和 docker rm
。
docker run
运行容器
docker run
是启动容器的基本命令。它可以接受多种选项,如设置环境变量、映射端口、挂载卷等。
示例
bashCopy Codedocker run -d -p 80:80 --name webserver nginx:latest
这条命令会启动一个名为 webserver
的容器,基于 nginx:latest
镜像。-d
表示后台运行,-p
表示将容器的 80 端口映射到宿主机的 80 端口。
docker ps
查看容器
docker ps
命令用于查看当前正在运行的容器。如果加上 -a
选项,还可以查看所有容器(包括停止的容器)。
示例
bashCopy Codedocker ps
输出示例:
Copy CodeCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1f8f78a57c44 nginx:latest "nginx -g 'daemon of…" 5 minutes ago Up 4 minutes 0.0.0.0:80->80/tcp webserver
docker exec
执行容器内命令
docker exec
命令用于在运行中的容器内执行命令,常用于调试和操作容器内的应用程序。
示例
bashCopy Codedocker exec -it webserver bash
这条命令会在 webserver
容器内启动一个交互式的 Bash shell,允许你在容器内执行命令。
docker stop
停止容器
docker stop
命令用于停止运行中的容器。
示例
bashCopy Codedocker stop webserver
该命令会停止 webserver
容器。
docker start
启动容器
docker start
命令用于启动已停止的容器。
示例
bashCopy Codedocker start webserver
这条命令会重新启动之前停止的 webserver
容器。
docker rm
删除容器
`