镜像
docker下载镜像相关操作及命令
概念:
Docker镜像可以通俗地理解为一种“快照”或“模板”。就像你用相机拍照,捕捉某个瞬间的样子,Docker镜像就是捕捉了一个软件应用及其运行环境的完整状态。这样,无论在什么环境下,只要使用这个镜像,就可以快速地“复制”出这个应用及其环境。
想象一下,如果你要搬家,你需要打包你所有的物品和家具。Docker镜像就像是你打包好的物品清单,无论搬到哪里,只要按照清单来,你的家就能快速地布置好,而且每次搬家都使用相同的清单,确保了一致性和便捷性。
Docker镜像包含以下几个特点:
一致性:
镜像确保了无论在哪个机器上,应用的运行环境都是一致的,避免了“在我的机器上可以运行”的问题。
可移植性:
由于镜像包含了应用的所有依赖,它使得应用可以在任何安装了Docker的系统上运行。
版本控制:
像可以打上标签(tag),方便进行版本管理,可以轻松回滚到旧版本。
分层存储:
Docker镜像是由多个只读层组成的,每一层都是可复用的,这样可以节省存储空间,加快镜像构建和分发的速度。
自动化部署:
通过Dockerfile或Docker Hub等工具,可以自动化地构建和分发镜像,简化了部署流程。
检索:docker search
作用:
用于在Docker Hub或其他注册表中搜索镜像。帮助查找和获取所需的镜像,并提供对搜索结果进行过滤和排序的功能。
语法:
docker search [OPTIONS] TERM
常用选项:
–automated: 只列出 automated build类型的镜像;
–no-trunc: 显示完整的镜像描述;
-f <过滤条件>: 列出收藏数不小于指定值的镜像;
–limit: 限制返回的搜索结果数量,默认为25;
–format: 自定义打印格式。
示例:
- 搜索包含关键字 ubuntu 的镜像:
docker search ubuntu
- 限制返回的搜索结果数量,例如只返回前5个结果:
docker search --limit 5 ubuntu
- 过滤搜索结果,例如只返回stars数不低于50的镜像:
docker search --filter stars=50 ubuntu
下载:docker pull
作用:
- 从远程仓库下载镜像到本地。
- 如果本地已经存在该镜像,会检查仓库中是否有更新的版本,如果有,则更新本地镜像。
语法:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
- NAME 是镜像的仓库名称。
- TAG 是可选的,指定要下载的镜像标签,默认为 latest。
- DIGEST 是镜像摘要,用于确保下载特定版本的镜像。
常用选项:
- -a, --all-tags:拉取指定仓库的所有标签的镜像。
- –disable-content-trust:在拉取镜像时禁用内容信任(即不验证镜像签名)。
示例:
- 下载最新版本的ubuntu镜像:
docker pull ubuntu
这会下载标签为 latest 的 ubuntu 镜像。
- 下载特定版本的ubuntu镜像:
docker pull ubuntu:18.04
这会下载 ubuntu 镜像的 18.04 版本。
- 下载特定仓库的所有镜像:
docker pull --all-tags ubuntu
这会下载 ubuntu 仓库下所有标签的镜像。
列表:docker image
作用:
- 列出本地Docker环境中的所有镜像。
- 显示镜像的详细信息,如镜像ID、创建时间、大小等
语法:
docker image [OPTIONS] [COMMAND]
- OPTIONS 是可选的参数,用于指定如何显示镜像列表。
- COMMAND 是要对镜像执行的操作,如 ls 列出镜像。
常用选项:
- -a, --all-tags:显示所有镜像,包括中间镜像。
- –digests:显示镜像摘要。
- –filter:根据提供的条件过滤镜像列表。
- –format:指定返回值的模板格式。
- –no-trunc:显示完整的镜像信息,不截断。
- -q, --quiet:仅显示镜像ID。
示例:
- 列出所有本地镜像:
docker image ls
这会列出本地所有镜像的默认信息。
- 列出所有镜像,包括中间镜像:
docker image ls --all-tags
这会显示所有镜像,包括用于构建其他镜像的中间镜像。
- 仅显示镜像ID:
docker image ls --quiet
这会输出所有镜像的ID列表。
- 过滤出特定的镜像:
docker image ls --filter "reference=ubuntu*"
这会列出所有以 ubuntu 开头的镜像。
- 显示镜像摘要:
docker image ls --digests
这会显示每个镜像的摘要信息。
- 自定义格式输出:
docker image ls --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
这会以表格形式显示镜像的仓库、标签和大小。
删除:docker rmi
作用:
- 删除本地Docker环境中不再需要的镜像。
语法:
docker rmi [OPTIONS] IMAGE [IMAGE...]
- OPTIONS 是可选的参数。
- IMAGE 是要删除的镜像的名称或ID。
常用选项:
- –force 或 -f:强制删除镜像,即使该镜像被一个或多个容器使用。
- –no-prune:不自动删除未标记的父镜像。
示例:
- 删除单个镜像:
docker rmi ubuntu:18.04
这将删除标签为 18.04 的 ubuntu 镜像。
- 删除多个镜像:
docker rmi ubuntu:18.04 nginx:latest
这将删除 ubuntu 的 18.04 版本和 nginx 的 latest 版本。
- 使用镜像ID删除:
docker rmi 1e5c1472ef3d
这将删除ID为 1e5c1472ef3d 的镜像。
- 强制删除镜像:
docker rmi --force ubuntu:18.04
如果 ubuntu:18.04 镜像被容器使用,使用 --force 选项可以强制删除它。
- 删除无用镜像:
docker image prune -a
虽然这不是 docker rmi 命令,但 docker image prune 命令可以删除所有未被任何容器使用的镜像,释放空间。
容器
docker容器相关操作
概念:
可以通俗地理解为一种轻量级的、可移植的、自给自足的软件运行环境。它好比是一个魔法盒子,里面装着一个软件应用的所有必需品,包括代码、运行时、库、环境变量和配置文件。想象一下,如果你要搬家,你需要打包你所有的物品和家具。Docker容器就像是你打包好的物品清单,无论搬到哪里,只要按照清单来,你的家就能快速地布置好,而且每次搬家都使用相同的清单,确保了一致性和便捷性。而且,每个房间(容器)都是独立的,不会互相干扰。
特点:
轻量级:
容器共享宿主机的内核,不需要像虚拟机那样模拟整个操作系统,因此启动速度快,资源占用少。
隔离性:
每个容器都是相互隔离的,有自己的文件系统、网络配置和进程空间,一个容器中的操作不会影响其他容器。
可移植性:
容器不依赖于特定的基础设施,可以在任何安装了Docker的机器上运行,实现了“一次构建,到处运行”。
一致性:
容器确保了开发、测试和生产环境的一致性,减少了“在我机器上可以运行”的问题。
易于管理:
Docker提供了一套完整的容器生命周期管理工具,包括创建、启动、停止、删除等。
版本控制和继承:
容器镜像支持版本控制,可以基于一个基础镜像,添加或修改内容来创建新的镜像。
自动化部署:
容器可以快速部署和扩展应用,适合微服务架构和持续集成/持续部署(CI/CD)的工作流程。
资源共享:
容器之间可以共享宿主机的资源,如CPU、内存和磁盘等,但每个容器都有独立的网络接口。
安全性:
容器提供了一定程度的隔离,但并不是完全安全的。使用容器时,还需要考虑应用安全和网络安全。
生态系统:
Docker拥有庞大的社区和生态系统,提供了大量的预构建镜像和工具,方便开发者使用。
运行:docker run
目录挂载+卷映射+批量删除
docker run与docker exec命令细节(以简单修改默认界面为例子)
作用:
- 从镜像创建一个新容器,并启动它。
- 如果镜像在本地不存在,会自动从配置的注册表下载。
语法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
- OPTIONS 是可选的参数,用于设置容器的配置。
- IMAGE 是要运行的镜像的名称。
- COMMAND 是在容器内执行的命令(可选)。
- ARG… 是传递给 COMMAND 的参数(可选)。
常用选项:
- -d:以守护进程模式运行容器(后台运行)。
- –name:为容器指定一个名称。
- -p:端口映射,格式为 <宿主机端口>:<容器端口>。
- -e:设置环境变量。
- -v:挂载卷,用于数据持久化或共享,格式为 <宿主机目录>:<容器目录>。
- –rm:容器退出时自动清理容器文件系统。
- –network:指定容器的网络连接。
示例:
- 运行一个ubuntu容器并进入其bash shell:
docker run -it ubuntu bash
这将创建并启动一个基于 ubuntu 镜像的容器,并打开一个bash shell。
- 在后台运行nginx容器并映射端口:
docker run -d -p 8080:80 --name mynginx nginx
这将后台运行 nginx 容器,将容器的80端口映射到宿主机的8080端口,并给容器命名为 mynginx。
- 设置环境变量运行容器:
docker run -d -e "ENV_VAR=example" myimage
这将创建并启动一个容器,设置环境变量 ENV_VAR 的值为 example。
- 挂载卷运行容器:
docker run -d -v /host/data:/container/data myimage
这将创建并启动一个容器,并将宿主机的 /host/data 目录挂载到容器的 /container/data 目录。
- 使用自定义命令运行容器:
docker run -d myimage mycommand arg1 arg2
这将使用 myimage 镜像启动容器,并执行 mycommand 命令,传递 arg1 和 arg2 作为参数。
- 清理退出的容器:
docker run --rm -d myimage
这将创建并启动一个容器,容器退出后自动删除容器文件系统。
查看:docker ps
作用:
- 显示本地Docker环境中正在运行的容器的列表。
语法:
docker ps [OPTIONS]
常用选项:
- -a, --all:显示所有容器(包括未运行的)。
- –latest:仅显示最近创建的容器。
- -n=INTEGER:仅显示最新启动的 INTEGER 个容器。
- -q, --quiet:仅显示容器的数字ID。
- –no-trunc:显示完整的容器信息,不截断。
- –filter:根据条件过滤容器。
示例:
- 查看正在运行的容器:
docker ps
这将列出所有当前正在运行的容器。
- 查看所有容器(包括未运行的):
docker ps -a
这将显示所有容器,无论它们是否正在运行。
- 仅显示最新启动的容器:
docker ps --latest
这将只显示最近创建的容器。
- 查看最新启动的3个容器:
docker ps -n 3
这将只显示最新启动的3个容器。
- 仅显示容器ID:
docker ps -q
这将只显示正在运行的容器的ID。
- 查看特定状态的容器:
docker ps --filter "status=running"
这将只显示状态为 running 的容器。
- 查看特定命名的容器:
docker ps --filter "name=webserver"
这将只显示名称包含 webserver 的容器。
停止:docker stop
作用:
- 发送停止信号到容器,让容器优雅地关闭。
语法:
docker stop [OPTIONS] CONTAINER [CONTAINER...]
- OPTIONS 是可选的参数。
- CONTAINER 是要停止的容器的名称或ID。
常用选项:
- -t:设置停止容器前的超时时间(以秒计)。默认为 10 秒。
- –time:与 -t 类似,用于设置超时时间。
示例:
- 停止名为 mycontainer 的容器:
docker stop mycontainer
这将发送停止信号给名为 mycontainer 的容器。
- 停止多个容器:
docker stop mycontainer1 mycontainer2
这将停止 mycontainer1 和 mycontainer2 这两个容器。
- 设置停止容器的超时时间:
docker stop -t 30 mycontainer
这将设置超时时间为 30 秒,如果容器在 30 秒内没有响应停止信号,Docker 将强制停止它。
- 使用容器ID停止容器:
docker stop $(docker ps -aq)
这个命令会停止所有正在运行的容器。docker ps -aq 会列出所有容器的ID,然后 docker stop 将使用这些ID来停止它们。
启动:docker start
作用:
- 重新启动一个或多个之前已经被停止的容器
。
语法:
docker start [OPTIONS] CONTAINER [CONTAINER...]
- OPTIONS 是可选的参数(此命令没有特定的选项)。
- CONTAINER 是要启动的容器的名称或ID。
常用选项:
- 此命令没有特定的选项,但可以使用 Docker 通用选项,如 --help 查看帮助信息。
示例:
- 启动名为 mycontainer 的容器:
docker start mycontainer
如果 mycontainer 是之前已经停止的容器,这个命令将重新启动它。
- 启动多个容器:
docker start mycontainer1 mycontainer2
这将重新启动 mycontainer1 和 mycontainer2 这两个容器。
- 列出所有停止的容器并启动它们:
docker start $(docker ps -aq -f status=exited)
这个命令会列出所有已停止的容器,并重新启动它们。docker ps -aq -f status=exited 会获取所有已停止容器的ID。
重启:docker restart
作用:
- 重启一个或多个正在运行的容器,或者如果它们当前没有运行,则启动它们。
语法:
docker restart [OPTIONS] CONTAINER [CONTAINER...]
- OPTIONS 是可选的参数。
- CONTAINER 是要重启的容器的名称或ID。
常用选项:
-t:设置重启前的超时时间(以秒计)。默认为 10 秒内容器必须响应停止信号。
示例:
- 重启名为 mycontainer 的容器:
docker restart mycontainer
这将重启名为 mycontainer 的容器。
- 重启多个容器:
docker restart mycontainer1 mycontainer2
这将重启 mycontainer1 和 mycontainer2 这两个容器。
- 设置超时时间重启容器:
docker restart -t 20 mycontainer
这将设置超时时间为 20 秒,如果容器在 20 秒内没有响应重启信号,Docker 将强制重启它。
状态:docker stats
作用:
- 用于实时显示容器的资源使用情况,包括CPU、内存、网络I/O等信息
语法:
docker stats [OPTIONS] [CONTAINER...]
- OPTIONS 是可选的参数。
- CONTAINER 是指定的容器名称或ID,如果不指定,则显示所有容器的统计信息。
常用选项:
- -a, --all:显示所有容器的统计信息,包括未运行的容器的网络流量。
- –no-stream:禁用实时更新,只打印一次统计信息。
示例:
- 显示所有容器的资源使用情况:
docker stats
这将实时显示所有容器的CPU、内存、网络I/O等资源使用情况。
- 显示特定容器的资源使用情况:
docker stats mycontainer
这将只显示名为 mycontainer 的容器的资源使用情况。
- 显示所有容器的网络流量:
docker stats -a
这将显示所有容器的网络发送和接收的数据量。
- 一次性显示所有容器的资源使用情况:
docker stats --no-stream
这将一次性显示所有容器的资源使用情况,而不是持续更新。
日志:docker logs
作用:
- 获取容器的日志信息,包括标准输出(stdout)和标准错误(stderr)。
语法:
docker logs [OPTIONS] CONTAINER
- OPTIONS 是可选的参数,用于定制日志输出。
- CONTAINER 是要获取日志的容器的名称或ID。
常用选项:
- -f, --follow:跟随日志输出,实时显示新的日志条目。
- -t, --time:显示每条日志的时间戳。
- –tail:仅显示最后几行日志;默认为所有日志,或可以使用具
- 体数字指定行数,如 --tail “all” 或 --tail “100”。
- –details:显示日志的完整信息,如容器ID等。
示例:
- 获取容器的所有日志:
docker logs mycontainer
这将显示容器 mycontainer 的所有日志。
- 实时跟踪容器的日志输出:
docker logs -f mycontainer
使用 -f 选项将实时显示容器 mycontainer 的日志输出。
- 显示带时间戳的日志:
docker logs -t mycontainer
使用 -t 选项将显示每条日志的时间戳。
- 获取容器最后的N行日志:
docker logs --tail 10 mycontainer
这将显示容器 mycontainer 最后的10行日志。
- 显示容器的详细日志信息:
docker logs --details mycontainer
使用 --details 选项将显示日志的完整信息,如源容器的ID等。
进入:docker exec
作用:
- 用于在运行中的容器内执行新的命令或交互式shell。
- 在已运行的容器内执行命令。
- 进入容器的命令行界面,进行交互式操作。
语法:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
- OPTIONS 是可选的参数,用于定制命令执行的环境
- CONTAINER 是要执行命令的容器的名称或ID。
- COMMAND 是要在容器内执行的命令。
- ARG… 是传递给 COMMAND 的参数。
常用选项:
- -it:分配一个伪终端并保持标准输入开放,通常用于交互式shell。
- –detach 或 -d:以守护进程模式运行命令。
- –user 或 -u:以指定的用户身份执行命令。
示例:
- 在容器内执行交互式bash shell:
docker exec -it mycontainer bash
这将分配一个伪终端并打开容器 mycontainer 的交互式bash shell。
- 在容器内执行特定的命令:
docker exec mycontainer ls -l /
这将在容器 mycontainer 内执行 ls -l / 命令,列出容器根目录下的文件和目录。
- 以特定用户身份执行命令:
docker exec -u root mycontainer whoami
这将以 root 用户身份在容器 mycontainer 内执行 whoami 命令。
- 后台运行命令:
docker exec -d mycontainer my_command
这将以守护进程模式在容器 mycontainer 内执行 my_command。
- 使用环境变量:
docker exec -e "MY_ENV_VAR=value" mycontainer env
这将在容器 mycontainer 内执行 env 命令,并设置环境变量 MY_ENV_VAR。
删除:docker rm
作用:
- 删除指定的Docker容器。
语法:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
- OPTIONS 是可选的参数。
- CONTAINER 是要删除的容器的名称或ID。
常用选项:
- -f, --force:强制删除容器,即使容器当前正在运行。
- –link:删除容器的链接。
- –volumes 或 -v:删除容器创建的卷
示例:
- 删除名为 mycontainer 的容器:
docker rm mycontainer
这将删除名为 mycontainer 的容器。
- 删除多个容器:
docker rm mycontainer1 mycontainer2
这将删除 mycontainer1 和 mycontainer2 这两个容器。
- 强制删除正在运行的容器:
docker rm -f mycontainer
使用 -f 选项将强制删除正在运行的容器 mycontainer。
- 删除容器并移除其挂载的卷:
docker rm -v mycontainer
使用 -v 选项将删除容器 mycontainer 及其挂载的卷。
- 使用容器ID删除容器:
docker rm $(docker ps -aq)
这个命令会删除所有正在运行的容器。docker ps -aq 会列出所有容器的ID,然后 docker rm 将使用这些ID来删除它们。
分享
分享至社区
镜像的保存
提交:docker commit
作用:
- 用于从更改过的容器实例中创建一个新的Docker镜像。这允许你保存对容器的更改,例如安装新的软件包或更新应用配置,并将这些更改作为新的镜像保存下来。
- 从更改过的容器创建一个新的镜像。
语法:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
- OPTIONS 是可选的参数,用于定制创建镜像的行为。
- CONTAINER 是要提交的容器的名称或ID。
- REPOSITORY 是新创建镜像的仓库名称。
- TAG 是可选的,用于给镜像指定一个标签。
常用选项:
- -a 或 --author:设置镜像的作者字段。
- -c 或 --change:应用Dockerfile指令来创建镜像。
- -m 或 --message:提交时的说明信息。
- -p 或 --pause:提交时暂停容器运行(默认为true)。
示例:
- 提交容器为新镜像:
docker commit mycontainer mynewimage
这将把容器 mycontainer 提交为一个新的镜像,命名为 mynewimage。
- 提交容器并设置作者:
docker commit -a "Author Name" mycontainer mynewimage
使用 -a 选项设置镜像的作者为 Author Name。
- 提交容器并附加说明信息:
docker commit -m "Description of changes" mycontainer mynewimage
使用 -m 选项添加提交时的说明信息。
- 使用Dockerfile指令定制提交过程:
docker commit -c 'CMD ["apache2", "-DFOREGROUND"]' mycontainer mywebimage
使用 -c 选项添加Dockerfile指令,例如设置启动命令。
- 提交容器并指定标签:
docker commit mycontainer mynewimage:v1.0
这将提交容器并给镜像指定标签 v1.0。
保存:docker save
作用:
- 用于将一个或多个Docker镜像保存为一个tar归档文件,这可以用于备份镜像或将镜像传输到其他机器上。
- 将镜像保存为tar归档文件,以便备份或迁移。
语法:
docker save [OPTIONS] IMAGE [IMAGE...]
- OPTIONS 是可选的参数。
- IMAGE 是要保存的镜像的名称或ID。
常用选项:
- -o 或 --output:指定输出文件的路径和名称
示例:
- 保存镜像到默认的归档文件:
docker save myimage:latest
这将保存标签为 latest 的 myimage 镜像到默认的归档文件名。
- 保存多个镜像到单个归档文件:
docker save myimage:latest myimage:v1.0 > myimages.tar
这将保存 myimage 的两个标签到同一个归档文件 myimages.tar。
- 指定输出文件保存镜像:
docker save -o myimage.tar myimage:latest
使用 -o 选项指定输出文件名为 myimage.tar。
- 保存所有标签的镜像:
docker save --all-tags myimage > myimage_all_tags.tar
使用 --all-tags 选项保存 myimage 仓库的所有标签到归档文件。
- 保存特定摘要的镜像:
docker save myimage@sha256:abcdef123456... >myimage_digest.tar
这将保存具有特定摘要的 myimage 镜像到归档文件。
加载:docker load
作用:
- 用于从tar归档文件中加载一个或多个Docker镜像,这通常用于将之前保存的镜像恢复到Docker环境中。
语法:
docker load [OPTIONS]
- OPTIONS 是可选的参数,用于定制加载行为。
常用选项:
- –input 或 -i:指定要加载的tar归档文件的路径。如果不指定,docker load 将从标准输入读取。
示例:
- 从标准输入加载镜像:
cat myimage.tar | docker load
这将从 myimage.tar 文件中加载镜像。如果文件是当前目录下,可以使用 cat 命令将文件内容传输到 docker load。
- 使用 --input 选项加载镜像:
docker load --input myimage.tar
使用 --input 选项指定要加载的归档文件。
- 从远程URL加载镜像:
docker load --input https://example.com/path/to/myimage.tar
如果tar文件位于远程URL,可以使用 --input 选项直接从URL加载。
- 从本地文件系统加载镜像:
docker load --input /path/to/myimage.tar
使用 --input 选项指定本地文件系统上的归档文件路径。
登录:docker login
作用:
- 用于登录到Docker注册表,通常是Docker Hub,这样你就可以推送(push)和拉取(pull)镜像。
语法:
docker login [OPTIONS] [SERVER]
- OPTIONS 是可选的参数,用于定制登录行为。
- SERVER 是可选的,指定要登录的Docker注册表地址,默认为 Docker Hub。
常用选项:
- -u 或 --username:指定用户名。
- -p 或 --password:指定密码。
- –email:指定用户的电子邮件地址。
示例:
- 登录到Docker Hub:
docker login
这将提示你输入用户名和密码。
- 使用用户名和密码登录:
docker login --username=yourusername --password=yourpassword
使用 -u 和 -p 选项直接在命令中指定用户名和密码。
- 登录到私有注册表:
docker login myprivateregistry.example.com
这将登录到指定的私有Docker注册表。
- 使用电子邮件地址登录:
docker login --username=yourusername --password=yourpassword --email=youremail@example.com
使用 --username、–password 和 --email 选项指定完整的登录信息。
命名:docker tag
作用:
- 用于给现有镜像创建一个新的标签(tag),这通常用于准备将镜像推送到Docker注册表或仅仅是为了在本地更好地组织镜像。
语法:
docker tag [OPTIONS] IMAGE[:TAG] [TARGET-REPOSITORY[:TAG]]
- OPTIONS 是可选的参数。
- IMAGE 是原始镜像的名称。
- TAG 是原始镜像的标签,如果未指定,默认标签是 latest。
- TARGET-REPOSITORY 是新标签的目标仓库名称。
- TARGET-TAG 是新标签的标签名,可以是版本号或任何自定义标签。
常用选项:
- 此命令没有特定的选项,但可以使用 Docker 通用选项,如 --help 查看帮助信息
示例:
- 给本地镜像添加新标签:
docker tag myimage:latest myimage:v1.0
这将给标签为 latest 的 myimage 镜像添加一个新标签 v1.0。
- 给镜像添加默认标签:
docker tag myimage:v1.0 mynewimage
这将把 myimage 镜像的 v1.0 标签重命名为 mynewimage,实际上是创建了一个新的标签指向相同的镜像内容。
- 准备将镜像推送到远程仓库:
docker tag myimage:latest username/myimage:latest
这将把本地的 myimage 镜像标记为 username/myimage,准备推送到以 username 命名的 Docker Hub 账户。
- 使用完整仓库名称和新标签:
docker tag myimage:latest myregistry.example.com/myimage:v1.0
这将创建一个新的标签,指向私有仓库 myregistry.example.com 中的 myimage 镜像,并设置标签为 v1.0。
推送:docker push
作用:
- 用于将本地的Docker镜像推送到远程Docker注册表,如Docker Hub、私有注册表等。这允许其他人拉取并使用你推送的镜像。
语法:
docker push [OPTIONS] NAME[:TAG]
- OPTIONS 是可选的参数,用于定制推送行为。
- NAME 是要推送的镜像的仓库名称。
- TAG 是可选的,指定要推送的镜像标签;如果不指定,将推送所有标签。
常用选项:
- –disable-content-trust:禁用内容信任,不签名推送的镜像。
- –quiet 或 -q:静默模式,不显示详细输出。 实战应用示例
示例:
- 推送镜像到Docker Hub:
docker push username/myimage:latest
这将推送 username/myimage 镜像的 latest 标签到Docker Hub。
- 推送所有标签的镜像:
docker push username/myimage
如果镜像有多个标签,这将推送 username/myimage 仓库的所有标签。
- 静默模式推送镜像:
docker push --quiet username/myimage:v1.0
使用 --quiet 选项推送镜像,不显示过程信息。
- 禁用内容信任推送镜像:
docker push --disable-content-trust username/myimage:latest
使用 --disable-content-trust 选项推送镜像,不进行内容签名。