易考八股文之 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 pulldocker builddocker imagesdocker rmidocker tag

docker pull 拉取镜像

docker pull 命令用于从 Docker Hub 或其他镜像仓库拉取镜像。Docker Hub 是 Docker 默认的镜像仓库,用户可以通过这个命令下载官方或第三方的镜像。

示例

bashCopy Code
docker pull nginx:latest

这条命令会从 Docker Hub 下载最新版本的 nginx 镜像。下载完成后,可以通过 docker images 查看本地镜像。

docker build 构建镜像

docker build 命令用于从 Dockerfile 构建一个自定义的 Docker 镜像。Dockerfile 是一个文本文件,包含了一组指令,描述了如何构建一个镜像。

示例

假设我们有一个名为 Dockerfile 的文件,内容如下:

dockerfileCopy Code
FROM 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 Code
docker build -t mynginx .

该命令会在当前目录下查找 Dockerfile 文件,并构建一个名为 mynginx 的镜像。

docker images 查看镜像

docker images 命令用于列出本地 Docker 镜像。它会显示镜像的仓库、标签、镜像 ID、创建时间和大小等信息。

示例

bashCopy Code
docker images

输出示例:

Copy Code
REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 7c7a8a6d9f53 3 days ago 133MB mynginx latest 0abf3f9d2993 2 minutes ago 212MB

docker rmi 删除镜像

docker rmi 命令用于删除一个或多个镜像。如果镜像正在被某个容器使用,则删除镜像时会提示无法删除。

示例

bashCopy Code
docker rmi nginx:latest

如果该镜像没有被使用,它将被删除。删除镜像时,可以加上 -f 强制删除。

bashCopy Code
docker rmi -f nginx:latest

docker tag 给镜像打标签

docker tag 命令用于为镜像打标签。标签用于区分不同版本的镜像或创建镜像的不同标识。

示例

bashCopy Code
docker tag mynginx:latest myrepo/mynginx:v1.0

这条命令将 mynginx 镜像打上 myrepo/mynginx:v1.0 标签。你可以将标签用于推送镜像到 Docker Hub 或其他镜像仓库。

2. Docker 容器命令

容器是 Docker 的核心组成部分。Docker 容器是由镜像启动的实例,是在隔离的环境中运行应用程序的地方。常见的容器命令包括 docker rundocker psdocker execdocker stopdocker startdocker rm

docker run 运行容器

docker run 是启动容器的基本命令。它可以接受多种选项,如设置环境变量、映射端口、挂载卷等。

示例

bashCopy Code
docker run -d -p 80:80 --name webserver nginx:latest

这条命令会启动一个名为 webserver 的容器,基于 nginx:latest 镜像。-d 表示后台运行,-p 表示将容器的 80 端口映射到宿主机的 80 端口。

docker ps 查看容器

docker ps 命令用于查看当前正在运行的容器。如果加上 -a 选项,还可以查看所有容器(包括停止的容器)。

示例

bashCopy Code
docker ps

输出示例:

Copy Code
CONTAINER 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 Code
docker exec -it webserver bash

这条命令会在 webserver 容器内启动一个交互式的 Bash shell,允许你在容器内执行命令。

docker stop 停止容器

docker stop 命令用于停止运行中的容器。

示例

bashCopy Code
docker stop webserver

该命令会停止 webserver 容器。

docker start 启动容器

docker start 命令用于启动已停止的容器。

示例

bashCopy Code
docker start webserver

这条命令会重新启动之前停止的 webserver 容器。

docker rm 删除容器

`