【Docker基础】理解 Registry 镜像仓库:分类、工作机制、命令与实操-五、镜像仓库相关命令

时间:2025-03-01 07:43:33

仓库命令

命令 别名 功能
docker login 登录仓库
docker pull docker image pull 拉取镜像
docker push docker image push 推送镜像
docker search 查找镜像
docker logout 登出仓

详细介绍

  1. docker login

    • 功能
      该命令用于登录到 Docker 镜像仓库(如 Docker Hub 或私有镜像仓库)。登录后,可以进行镜像的推送和拉取等操作。

    • 语法

    docker login [OPTIONS] [SERVER]
    
    • 关键参数

      • -u, --username:指定用户名。
      • -p, --password:指定密码(不推荐在命令行中直接使用密码)。
      • --password-stdin:从标准输入读取密码(更安全的方式)。
      • SERVER:指定仓库地址,默认是 Docker Hub。
    • 样例

    # 登录到 Docker Hub
    docker login -u myusername -p mypassword
    
    # 从标准输入读取密码
    echo "mypassword" | docker login -u myusername --password-stdin
    
    # 登录到指定的私有仓库
    docker login -u myusername -p mypassword myprivaterepo.com
    

  1. docker pull

    • 功能
      该命令用于从 Docker 镜像仓库(如 Docker Hub 或私有仓库)拉取镜像到本地。

    • 语法

    docker pull [OPTIONS] IMAGE[:TAG]
    
    • 关键参数

      • IMAGE:指定要拉取的镜像名称。
      • TAG:指定镜像标签,默认为 latest
    • 样例

    # 拉取 Docker Hub 上的官方 Ubuntu 镜像
    docker pull ubuntu
    
    # 拉取指定标签的镜像
    docker pull ubuntu:20.04
    
    # 拉取私有仓库中的镜像
    docker pull myprivaterepo.com/myimage:latest
    

  1. docker push

    • 功能
      该命令用于将本地镜像推送到 Docker 镜像仓库。

    • 语法

    docker push [OPTIONS] IMAGE[:TAG]
    
    • 关键参数

      • IMAGE:指定要推送的镜像名称。
      • TAG:指定镜像标签。
    • 样例

    # 推送本地的镜像到 Docker Hub
    docker push myusername/myimage:latest
    
    # 推送本地镜像到私有仓库
    docker push myprivaterepo.com/myimage:latest
    

  1. docker search

    • 功能
      该命令用于在 Docker Hub 或指定的镜像仓库中搜索镜像。

    • 语法

    docker search [OPTIONS] TERM
    
    • 关键参数

      • TERM:搜索的关键字。
      • --filter-f:按特定条件过滤搜索结果,例如根据星级、是否官方镜像等。
      • --no-trunc:不截断搜索结果。
    • 样例

    # 在 Docker Hub 搜索 Ubuntu 镜像
    docker search ubuntu
    
    # 搜索官方的镜像,并且只显示带星级评分的镜像
    docker search --filter "is-official=true" --filter "stars=10" ubuntu
    
    # 搜索镜像时不截断结果
    docker search --no-trunc mysql
    

  1. docker logout

    • 功能
      该命令用于从 Docker 镜像仓库登出。登出后,无法进行推送或拉取操作,除非重新登录。

    • 语法

    docker logout [SERVER]
    
    • 关键参数

      • SERVER:指定要登出的仓库地址。如果没有指定,默认为 Docker Hub。
    • 样例

    # 登出 Docker Hub
    docker logout
    
    # 登出指定的私有仓库
    docker logout myprivaterepo.com
    

镜像命令

以下是您要求的三个镜像相关命令(docker imagesdocker image inspectdocker image tag)的详细介绍,按照您提供的格式:


  1. docker images
    • 功能
      该命令用于列出本地 Docker 镜像的列表,显示镜像的基本信息,包括镜像的 ID、标签、创建时间和大小。

    • 语法

      docker images [OPTIONS] [REPOSITORY[:TAG]]
      
    • 关键参数

      • REPOSITORY:指定要列出的镜像仓库。如果未指定,列出所有仓库的镜像。
      • TAG:指定要列出的镜像标签。如果未指定,列出所有标签的镜像。
      • -a, --all:显示所有镜像,包括中间层镜像。
      • -q, --quiet:只列出镜像的 ID。
      • --digests:显示镜像的摘要信息。
    • 样例

      # 列出所有镜像
      docker images
      
      # 列出指定仓库的镜像
      docker images ubuntu
      
      # 仅列出镜像的 ID
      docker images -q
      
      # 显示镜像的摘要信息
      docker images --digests
      

  1. docker image inspect
    • 功能
      该命令用于获取指定镜像的详细信息,以 JSON 格式输出镜像的元数据,如镜像的配置、层、环境变量等。

    • 语法

      docker image inspect [OPTIONS] IMAGE [IMAGE...]
      
    • 关键参数

      • IMAGE:指定要查看详细信息的镜像 ID 或镜像名称。
      • -f, --format:使用 Go 模板格式化输出结果,可以根据需要提取特定的信息。
      • --type:指定要返回的对象类型(如 imagecontainer 等)。
    • 样例

      # 查看指定镜像的详细信息
      docker image inspect ubuntu
      
      # 查看多个镜像的详细信息
      docker image inspect ubuntu alpine
      
      # 使用格式化输出,只显示镜像的创建时间
      docker image inspect -f '{{.Created}}' ubuntu
      

  1. docker image tag (别名:docker tag)
    • 功能
      该命令用于为本地镜像打标签。通过为镜像打标签,可以为同一个镜像指定多个标签,或者将镜像推送到其他仓库。

    • 语法

      docker image tag [OPTIONS] SOURCE_IMAGE TARGET_IMAGE
      
    • 关键参数

      • SOURCE_IMAGE:要打标签的源镜像的 ID 或名称。
      • TARGET_IMAGE:目标镜像的名称(包括仓库地址和标签)。
      • -f, --force:强制覆盖已有标签。
      • --help:显示帮助信息。
    • 样例

      # 为本地镜像 ubuntu 打标签,将其命名为 myrepo/ubuntu:v1
      docker image tag ubuntu myrepo/ubuntu:v1
      
      # 将本地镜像打标签并推送到指定的仓库
      docker image tag ubuntu myprivaterepo.com/ubuntu:v1
      docker push myprivaterepo.com/ubuntu:v1
      
      # 强制覆盖现有标签
      docker image tag -f ubuntu myrepo/ubuntu:v2
      

容器命令

  1. docker run

    • 功能
      该命令用于创建并启动一个新的容器。docker run 是 Docker 中最常用的命令之一,允许用户从指定镜像创建容器,并且可以指定容器的配置、端口映射、挂载卷等参数。

    • 语法

      docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
      
    • 关键参数

      • IMAGE:指定用于创建容器的镜像名称。
      • COMMAND:指定容器启动时运行的命令,默认为镜像的默认命令。
      • -d, --detach:让容器在后台运行。
      • -p, --publish:映射容器的端口到主机,格式为 host_port:container_port
      • -e, --env:设置环境变量。
      • -v, --volume:挂载卷,将宿主机目录或文件挂载到容器中。
      • --name:为容器指定一个自定义名称。
      • --rm:容器停止后自动删除容器。
      • -it:结合使用 -i(保持标准输入流打开)和 -t(分配伪终端)选项,通常用于交互式容器。
    • 样例

      # 从 ubuntu 镜像创建并启动一个容器,交互模式下运行 bash
      docker run -it ubuntu bash
      
      # 在后台启动容器并映射端口
      docker run -d -p 8080:80 nginx
      
      # 创建并启动容器,挂载宿主机目录到容器
      docker run -d -v /path/to/host/dir:/path/in/container nginx
      
      # 启动容器并设置环境变量
      docker run -d -e "ENV_VAR=value" ubuntu
      
      # 使用 --name 为容器指定一个名称
      docker run -d --name mynginx nginx
      
      # 容器停止后自动删除容器
      docker run --rm ubuntu
      

  1. docker ps

    • 功能
      该命令用于列出当前正在运行的容器。docker ps 可以帮助用户查看容器的状态、容器 ID、镜像、端口映射等信息。

    • 语法

      docker ps [OPTIONS]
      
    • 关键参数

      • -a, --all:列出所有容器(包括停止的容器)。
      • -q, --quiet:只列出容器的 ID。
      • -f, --filter:根据指定条件过滤容器(如按状态、镜像名称、容器名称等)。
      • --format:使用 Go 模板格式化输出,定制输出的字段。
      • --no-trunc:显示完整的容器 ID,而非截断的短 ID。
    • 样例

      # 列出所有正在运行的容器
      docker ps
      
      # 列出所有容器(包括已经停止的容器)
      docker ps -a
      
      # 仅显示容器的 ID
      docker ps -q
      
      # 过滤显示特定镜像的容器
      docker ps -f "ancestor=ubuntu"
      
      # 显示格式化后的输出,仅显示容器名称和状态
      docker ps --format "{{.Names}}: {{.Status}}"
      
      # 显示完整的容器 ID
      docker ps --no-trunc