Docker 常用命令详解与参数说明 - 教程

Docker 是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖打包到一个可移植的容器中。以下是对常用 Docker 命令的详细解释,包括每个命令中的参数含义、语法格式以及使用示例。


1. 镜像相关命令

查看本地已有的镜像

docker images [OPTIONS]

  • 功能:列出本地所有已下载或构建的镜像。

  • 参数说明

    • [OPTIONS]:可选参数,例如:

      • -a, --all:显示所有镜像(包括中间层镜像)。

      • --digests:显示摘要信息。

      • --no-trunc:不截断输出。

  • 示例

docker images
docker images -a

从远程仓库拉取镜像

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

  • 功能:从远程仓库(如 Docker Hub)下载指定镜像。

  • 参数说明

    • NAME:镜像名称,例如 nginx, mysql, redis

    • TAG:镜像标签(版本),例如 latest, 8.0.36, 6.2-alpine

    • DIGEST:镜像的唯一哈希值(用于精确匹配特定镜像)。

    • [OPTIONS]:可选参数,例如:

      • -a, --all-tags:拉取所有标签的镜像。

  • 示例

    docker pull nginx:latest
    docker pull mysql@sha256:abc123...
    docker pull minio/minio:RELEASE.2022-01-04T07-41-07Z


    构建镜像(基于 Dockerfile)

    docker build [OPTIONS] PATH | URL | -

    • 功能:根据当前目录下的 Dockerfile 构建一个新的镜像。

    • 参数说明

      • PATH:包含 Dockerfile 的本地路径(通常为当前目录 

      • URL:远程 Git 仓库地址。

      • -:表示从标准输入读取内容。

      • [OPTIONS]:可选参数,例如:

        • -t, --tag stringArray:指定镜像名称和标签,例如 my-app:latest

        • --build-arg key=value:传递构建时变量。

        • --no-cache:不使用缓存。

    • 示例

      docker build -t my-app .
      docker build -t my-app:v1 https://github.com/yourname/repo.git#main

      删除本地镜像

      docker rmi [OPTIONS] IMAGE [IMAGE...]

      • 功能:删除一个或多个本地镜像。

      • 参数说明

        • IMAGE:镜像名称或 ID,例如 nginx, redis:6.2-alpine, f5f171121fa3

        • [OPTIONS]:可选参数,例如:

          • -f, --force:强制删除镜像,即使有容器正在使用该镜像。

      • 示例

        docker rmi nginx
        docker rmi redis:6.2-alpine mysql:8.0.36


        导出镜像为 tar 文件

        docker save [OPTIONS] IMAGE > FILE

        • 功能:将一个或多个镜像打包成 .tar 文件,便于备份或迁移。

        • 参数说明

          • IMAGE:要导出的镜像名称或 ID。

          • [OPTIONS]:可选参数,例如:

            • -o, --output string:指定输出文件名。

        • 示例

          docker save -o nginx.tar nginx
          docker save -o app-images.tar my-app:latest test-dev-doc-server:latest

          导入镜像

          docker load [OPTIONS] < FILE

          • 功能:从 .tar 文件中加载镜像。

          • 参数说明

            • FILE:镜像文件路径。

            • [OPTIONS]:可选参数,例如:

              • -i, --input string:指定输入文件。

          • 示例

            docker load -i nginx.tar


            推送镜像到远程仓库

            docker push [OPTIONS] NAME[:TAG]

            • 功能:将本地镜像推送到远程仓库(如 Docker Hub 或私有 Registry)。

            • 参数说明

              • NAME:镜像名称,必须是已登录账户下的命名空间,例如 username/myapp

              • TAG:镜像标签。

              • [OPTIONS]:可选参数,例如:

                • --disable-content-trust:禁用内容信任(默认启用)。

            • 前提条件

              • 必须先使用 docker login 登录远程仓库。

            • 示例

              docker push my-app:latest


              2. 容器相关命令

              运行一个新的容器

              docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

              • 功能:启动一个新的容器实例。

              • 参数说明

                • IMAGE:使用的镜像名称。

                • [COMMAND] [ARG...]:覆盖镜像中的默认启动命令。

                • [OPTIONS]:常见选项包括:

                  • -d:后台运行容器。

                  • -p HOST_PORT:CONTAINER_PORT:端口映射。

                  • --name string:指定容器名称。

                  • -v HOST_PATH:CONTAINER_PATH:挂载数据卷。

                  • -e KEY=VALUE:设置环境变量。

              • 示例

                docker run -d -p 80:80 --name my-nginx nginx docker run -d -p 3306:3306 -v /host/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql


                列出正在运行的容器

                docker ps [OPTIONS]

                • 功能:列出当前正在运行的容器。

                • 参数说明

                  • [OPTIONS]:可选参数,例如:

                    • -a:显示所有容器(包括停止的)。

                    • -q:仅显示容器 ID。

                • 示例

                  docker ps docker ps -a


                  查看当前运行的 MinIO 容器版本

                  docker exec -it minio minio --version

                  **说明**:

                  • minio 是容器名称(与 NAMES 列一致)。

                  • 该命令会进入容器并执行 minio --version 来输出版本号。


                    示例输出(仅供参考)

                    minio version RELEASE.2022-01-04T07-41-07Z

                    这个输出表示你正在使用的是 MinIO 的 RELEASE.2021-06-17 版本。

                    停止容器

                    docker stop CONTAINER_ID

                    • 功能:优雅地停止一个正在运行的容器。

                    • 参数说明

                      • CONTAINER_ID:容器 ID 或名称。

                    • 示例

                      docker stop my-nginx


                      启动已停止的容器

                      docker start CONTAINER_ID

                      • 功能:重新启动一个已停止的容器。

                      • 参数说明

                        • CONTAINER_ID:容器 ID 或名称。

                      • 示例

                        docker start my-nginx


                        重启容器

                        docker restart CONTAINER_ID

                        • 功能:重启一个正在运行的容器。

                        • 参数说明

                          • CONTAINER_ID:容器 ID 或名称。

                        • 示例

                          docker restart my-nginx


                          进入正在运行的容器

                          docker exec -it CONTAINER_ID /bin/bash

                          • 功能:进入容器内部执行命令。

                          • 参数说明

                            • -it:交互式终端模式。

                            • /bin/bash:容器内使用的 shell(如果容器没有 bash,可以尝试 /bin/sh)。

                          • 示例

                            docker exec -it my-nginx /bin/bash


                            删除容器

                            docker rm [OPTIONS] CONTAINER [CONTAINER...]

                            • 功能:删除一个或多个容器。

                            • 参数说明

                              • CONTAINER:容器 ID 或名称。

                              • [OPTIONS]:可选参数,例如:

                                • -f, --force:强制删除正在运行的容器。

                            • 示例

                              docker rm my-nginx


                              查看容器日志

                              docker logs [OPTIONS] CONTAINER_ID

                              • 功能:查看容器的标准输出日志。

                              • 参数说明

                                • [OPTIONS]:可选参数,例如:

                                  • -f:持续跟踪日志。

                                  • --tail N:只显示最后 N 行。

                              • 示例

                                docker logs my-nginx docker logs -f my-nginx


                                查看容器详细信息

                                docker inspect CONTAINER_ID

                                • 功能:查看容器的详细配置信息(IP、网络、存储等)。

                                • 参数说明

                                  • CONTAINER_ID:容器 ID 或名称。

                                • 示例

                                  docker inspect my-nginx


                                  复制文件到容器或从容器复制文件

                                  docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH

                                  • 功能:在宿主机和容器之间复制文件。

                                  • 参数说明

                                    • SRC_PATH:源路径。

                                    • DEST_PATH:目标路径。

                                  • 示例

                                    docker cp ./test.txt my-nginx:/tmp/test.txt docker cp my-nginx:/tmp/test.txt ./


                                    3. 网络相关命令

                                    创建自定义网络

                                    docker network create [OPTIONS] NETWORK

                                    • 功能:创建一个自定义网络(桥接、覆盖等)。

                                    • 参数说明

                                      • NETWORK:网络名称。

                                      • [OPTIONS]:可选参数,例如:

                                        • --driver bridge:指定网络驱动(默认为 bridge)。

                                        • --subnet CIDR:指定子网范围。

                                    • 示例

                                      docker network create my-network


                                      连接容器到网络

                                      docker network connect NETWORK CONTAINER

                                      • 功能:将容器加入到指定网络。

                                      • 参数说明

                                        • NETWORK:网络名称。

                                        • CONTAINER:容器 ID 或名称。

                                      • 示例

                                        docker network connect my-network my-nginx


                                        断开容器与网络的连接

                                        docker network disconnect NETWORK CONTAINER

                                        • 功能:将容器从指定网络中断开。

                                        • 参数说明

                                          • NETWORK:网络名称。

                                          • CONTAINER:容器 ID 或名称。

                                        • 示例

                                          docker network disconnect my-network my-nginx


                                          删除网络

                                          docker network rm NETWORK

                                          • 功能:删除一个未被使用的网络。

                                          • 参数说明

                                            • NETWORK:网络名称。

                                          • 示例

                                            docker network rm my-network


                                            4. 数据卷相关命令

                                            创建数据卷

                                            docker volume create VOLUME_NAME

                                            • 功能:创建一个持久化数据卷。

                                            • 参数说明

                                              • VOLUME_NAME:数据卷名称。

                                            • 示例

                                              docker volume create my-volume


                                              挂载数据卷到容器

                                              docker run -v VOLUME_NAME:PATH_IN_CONTAINER ...

                                              • 功能:将数据卷挂载到容器的某个路径。

                                              • 参数说明

                                                • VOLUME_NAME:数据卷名称。

                                                • PATH_IN_CONTAINER:容器内的目标路径。

                                              • 示例

                                                docker run -d -v my-volume:/data --name my-container alpine


                                                清理未使用的数据卷

                                                docker volume prune

                                                • 功能:删除所有未被使用的数据卷。

                                                • 示例

                                                  docker volume prune


                                                  5. 其他常用命令

                                                  查看 Docker 版本信息

                                                  docker version

                                                  • 功能:显示 Docker 客户端和服务器的版本信息。


                                                    查看 Docker 系统信息

                                                    docker info

                                                    • 功能:显示系统级信息,如容器数量、镜像数量、存储驱动等。


                                                      清理未使用的镜像、容器、网络和数据卷

                                                      docker system prune

                                                      • 功能:清理所有未使用的资源。

                                                      • 可选参数

                                                        • -a:同时删除所有未使用的镜像(不只是悬空镜像)。

                                                      • 示例

                                                        docker system prune docker system prune -a


                                                        批量操作容器

                                                        获取所有容器 ID

                                                        docker ps -aq

                                                        批量停止容器

                                                        docker stop $(docker ps -aq)

                                                        批量删除容器

                                                        docker rm $(docker ps -aq)

                                                        批量删除镜像

                                                        docker rmi $(docker images -q)


                                                        posted @ 2025-09-18 21:06  yfceshi  阅读(82)  评论(0)    收藏  举报