Docker常用命令(+仓库,镜像,容器的关系)

一、仓库(repository),镜像(image),容器(container)的关系

        Docker 是一个开源的C/S架构应用容器引擎(客户端(client)和服务端(server)),让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。码头工人开发最佳实践 |码头工人文档 (docker.com)

 关于容器和镜像的定义,官网的解释如下:

         简单来说,容器是用镜像创建的运行实例。而镜像是一个打包好带上环境的项目(PS:一个镜像可以创建多个容器,跟一个类可以创建多个对象是一个道理)

        每个容器都可以被启动,开始,停止,删除,同时容器之间相互隔离,保证应用运行期间的安全。我们可以把容器理解为一个精简版的linux操作系统,包括root用户权限,进程空间,用户空间和网络空间等等这些,然后加上再它之上运行的应用程序。

        比如我们现在基于mysql镜像创建了一个容器,那么,这个容器其实并不是只有一个mysql程序,而是mysql同样也是安装运行在我们容器内的linux环境中的。

        镜像是 Docker 运行容器的前提,仓库是存放镜像的场所(分别公有仓库)。当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。

二、常用命令

镜像相关的命令:

使用 docker images 来列出本地主机上的镜像

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签, 同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本
  • IMAGE ID:镜像ID
  • CREATED:镜像创建时间
  • SIZE:镜像大小

 使用 docker search 命令来搜索镜像 (docker ps 是列出容器)

  • NAME: 镜像仓库源的名称
  • DESCRIPTION: 镜像的描述
  • OFFICIAL: 是否 docker 官方发布
  • STARS: 类似 Github 里面的 star,表示点赞。
  • AUTOMATED: 自动构建。

使用docker pull 来拉取镜像

使用 docker rmi 删除镜像(这里需要注意一下,可以看到提示信息,无法删除该镜像,因为有容器正在引用他!除非通过添加 -f 子命令,也就是强制删除,才能移除掉该镜像!

但是,我们一般不推荐这样暴力的做法,正确的做法应该是:

  1. 先删除引用这个镜像的容器;
  2. 再删除这个镜像;)

容器相关的命令

 最常用的比如说,要重启一个容器

  1. 先查看已经暂停的容器实例信息docker ps -a
  2. 通过docker start xxx启动容器
  3. 通过docker ps查看当前启动的容器

或者说还有一种方式:

  1. 首先 docker ps查看正在运行的容器信息,显示2分钟前启动运行
  2. docker restart 59ec 重启容器
  3. 再次 docker ps 查看容器信息显示 2秒前启动运行

除此之外,docker stop 此方式常常被翻译为优雅的停止容器 ( 而  docker kill 容器ID或容器名 :直接关闭容器)

docker stop 容器ID或容器名
参数 -t:关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的自己保存状态
docker stop -t=60 容器ID或容器名

要重启Docker服务,您可以使用以下命令:

sudo service docker restart

或者,如果您正在使用Systemd作为初始化系统,请使用以下命令:

sudo systemctl restart docker

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: Docker镜像容器仓库之间有着密切的关系仓库是集中存放镜像的地方,可以是公共的,例如 Docker Hub,也可以是自己搭建的私有仓库,如Docker Registry、Artifactory或Nexus等。镜像Docker的基本构建块,它是一个轻量级、可执行的独立软件包,包含了运行应用程序所需的所有文件和依赖关系。当我们使用Docker命令从仓库中获取一个镜像时,实际上是从仓库中下载该镜像的副本到本地。而容器是基于镜像创建的运行实例,它可以被启动、停止、删除和重启。一个容器可以使用一个或多个镜像来构建,并且可以通过对镜像进行修改来满足应用程序的需求。容器之间是相互隔离的,每个容器都具有自己独立的文件系统、进程空间和网络空间。所以,可以说镜像仓库中存放的软件包,而容器则是基于镜像创建的运行实例。123 #### 引用[.reference_title] - *1* [面向对象视角下,理解Docker 镜像容器仓库](https://blog.csdn.net/m0_53321320/article/details/126283645)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* *3* [Docker仓库镜像容器用法详解](https://blog.csdn.net/weixin_44799217/article/details/127723211)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值