跳转到内容

Docker 基础命令

时光2025/8/290 0 m

建议

Docker 是一种流行的容器化平台,可以在一个独立的、隔离的环境中构建、部署和运行应用程序。了解 Docker 常用命令可以帮助我们更高效地管理容器,快速开发和部署应用。本文将整理一系列 Docker 的常用命令,便于日常使用和学习。

1 Docker 基础命令

1.1 启动/停止/重启 docker

bash
# 启动
systemctl start docker
# 停止
systemctl stop docker
# 重启
systemctl restart docker

1.2 设置开机自启动

bash
# 设置
systemctl enable docker
# 取消开机自启动
systemctl disable docker

1.3 查看 docker 状态

bash
systemctl status docker

1.4 查看版本信息

bash
docker version

该命令显示当前安装的 Docker 客户端和服务器版本信息。

1.5 显示 Docker 系统信息

bash
docker info

该命令展示关于 Docker 安装的详细信息,包括运行容器的数量、镜像的数量、存储驱动、网络配置等。

1.6 查看帮助

bash
docker --help

2 镜像管理命令

2.1 搜索镜像

bash
docker search [镜像名]

在镜像仓库上搜索指定的名称的镜像,默认是 Docker Hub。

bash
docker search nginx

不过企业一般会使用 harbor 搭建自己的镜像仓库。

2.2 下载镜像

bash
docker pull [镜像名]:[标签]

下载指定的镜像到本地。如果不指定标签,则默认下载 latest 版本。例如:

bash
docker pull nginx:latest

2.3 列出本地镜像

bash
docker images

列出本地所有镜像,显示镜像 ID、仓库、标签、大小等信息。

2.4 删除镜像

bash
docker rmi [镜像ID或镜像名]

删除本地的某个镜像。例如:

bash
docker rmi nginx:latest

-f 参数可以执行强制删除镜像。

bash
docker rmi -f mysql

删除全部镜像(慎用):

bash
docker rmi -f $(docker images -aq)

-a 意思为显示全部, -q 意思为只显示 ID。

2.5 构建镜像

bash
docker build -t [镜像名]:[标签] [Dockerfile所在路径]

从指定路径的 Dockerfile 构建一个新的镜像。例如从当前路径构建:

bash
docker build -t nginx:1.0 .

2.6 导入镜像

bash
docker load -i 镜像保存文件位置
docker load -i /data/nginx.tar

2.7 保存镜像

bash
docker save -o 保存的目标文件名称 镜像名
docker save -o /data/nginx.tar nginx

保存后的镜像可以使用 load 加载到其他服务器上。

2.8 给镜像打标签

bash
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag nginx 10.10.10.200/software/nginx:1.26

有时候根据业务需求 需要对一个镜像进行分类或版本迭代操作,此时就需要给镜像打上标签。10.10.10.200 为镜像仓库地址,software 为镜像仓库名称。

3 容器管理命令

3.1 创建并运行容器

bash
docker run [选项] [镜像名]
  • -d:后台运行容器
  • -p:端口映射
  • --name:指定容器名称
  • -v:挂载卷;例如 -v 主机路径:容器路径

示例:在后台运行一个名为 mynginx 的 nginx 容器,并映射端口:

bash
docker run -d -p 8080:80 --name mynginx nginx

3.2 查看运行中的容器

bash
docker ps

列出当前正在运行的容器,显示容器 ID、镜像、状态、端口映射等信息。

3.3 查看所有容器(包括停止的)

bash
docker ps -a

3.4 启动和停止容器

bash
# 启动容器
docker start [容器ID或容器名]

# 停止容器
docker stop [容器ID或容器名]

3.5 重启容器

bash
docker restart [容器ID或容器名]

3.6 删除容器

bash
docker rm [容器ID或容器名]

删除指定的容器。如果容器正在运行,可以使用-f强制删除。

3.7 进入容器

bash
docker exec -it [容器ID或容器名] /bin/bash

在容器内启动一个交互式的 Shell。例如:

bash
docker exec -it mynginx /bin/bash

3.8 查看容器日志

bash
docker logs [容器ID或容器名]

查看容器的输出日志。常用选项:

  • -f:实时输出日志。
  • --tail n:显示最后 n 行日志。例如:
bash
docker logs -f --tail 20 mynginx

3.9 查看容器内部细节

bash
docker inspect [容器ID或容器名]

4 数据卷管理命令

数据卷(Volume)是 Docker 中持久化数据的关键,通过数据卷可以将容器内的数据持久化到宿主机中。

4.1 创建数据卷

bash
docker volume create [卷名]
docker volume create data

4.2 查看数据卷

bash
docker volume ls

列出所有数据卷。

4.3 删除数据卷

bash
docker volume rm [卷名]
docker volume rm data

删除指定的数据卷。

4.4 查看数据卷详情

bash
docker volume inspect [卷名]

显示数据卷的详细信息,包括挂载路径。

5 网络管理命令

Docker 支持创建自定义网络,以便容器之间可以通过自定义网络相互通信。

5.1 创建网络

bash
docker network create [网络名]

创建一个自定义网络,通常是 bridge 类型的网络。

5.2 查看网络

bash
docker network ls

列出所有网络,包括默认网络。

5.3 查看网络详情

bash
docker network inspect [网络名]

显示指定网络的详细信息,包括连接到该网络的容器信息。

5.4 删除网络

bash
docker network rm [网络名]

删除指定的自定义网络。

5.5 将容器连接到网络

bash
docker network connect [网络名] [容器名或容器ID]

5.6 将容器从网络断开

bash
docker network disconnect [网络名] [容器名或容器ID]

6 Docker Compose 命令

Docker Compose 是一种定义和运行多容器 Docker 应用的工具,通过一个 docker-compose.yml 文件定义应用的服务和配置。

6.1 启动服务

bash
docker-compose up

# 后台运行
docker-compose up -d

根据 docker-compose.yml 文件中的配置启动所有服务,常用选项:-d:后台运行所有服务。--build:在启动之前重新构建镜像。

6.2 停止服务

bash
docker-compose down

停止并删除所有容器、网络和卷。

6.3 构建或重建服务

bash
docker-compose build

6.4 查看服务状态

bash
docker-compose ps

列出由 docker-compose 管理的所有服务及其状态。

6.5 查看服务日志

bash
docker-compose logs [服务名]

查看指定服务的日志,常用选项:

  • -f:实时输出日志。
  • --tail n:显示最后 n 行日志。

7 常用清理命令

7.1 清理无用的数据

Docker 提供了一些简单的清理命令,用于删除不再使用的容器、镜像、卷和网络。

(1)删除所有已停止的容器:

bash
docker container prune

(2)删除未使用的镜像:

bash
docker image prune

(3)删除所有未使用的数据卷:

bash
docker volume prune

(4)删除所有未使用的网络:

bash
docker network prune

(5)清理所有未使用的资源(包括镜像、容器、卷和网络):

bash
docker system prune

VitePress Algolia Twikoo EdgeOne Copyright