时间:2021-05-19
Docker 镜像、容器、仓库的概念
Docker镜像
Docker镜像(Image)类似于虚拟机的镜像,可以将他理解为一个面向Docker引擎的只读模板,包含了文件系统。
例如:一个镜像可以完全包含了Ubuntu操作系统环境,可以把它称作一个Ubuntu镜像。镜像也可以安装了Apache应用程序(或其他软件),可以把它称为一个Apache镜像。
镜像是创建Docker容器的基础,通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像。用户可以从网上下载一个已经做好的应用镜像,并通过命令直接使用。总之,应用运行是需要环境的,而镜像就是来提供这种环境。
Docker容器
Docker容器(Container)类似于一个轻量级的沙箱子(因为Docker是基于Linux内核的虚拟技术,所以消耗资源十分少),Docker利用容器来运行和隔离应用。
容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相互隔离、互不可见的。
可以吧每个容器看作一个简易版的Linux系统环境(包括了root用户权限、进程空间、用户空间和网络空间),以及与运行在其中的应用程序打包而成的应用盒子。
镜像自身是只读的。容器从镜像启动的时候,Docker会在镜像的最上层创建一个可写层,镜像本身将保持不变。就像用ISO装系统之后,ISO并没有什么变化一样。
Docker仓库
Docker仓库(Repository)类似与代码仓库,是Docker集中存放镜像文件的场所。
有时候会看到有资料将Docker仓库和注册服务器(Registry)混为一谈,并不严格区分。实际上,注册服务器是存放仓库的地方,其上往往存放着多个仓库。每个仓库集中存放某一类镜像,往往包括多个镜像文件,通过不同的标签(tag)来进行区分。例如存放Ubuntu操作系统镜像的仓库,称为Ubuntu仓库,其中可能包括14.04,12.04等不同版本的镜像。
根据存储的镜像公开分享与否,Docker仓库分为公开仓库(Public)和私有仓库(Private)两种形式。
目前,最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括Docker Pool等,可以提供稳定的国内访问。如果用户不希望公开分享自己的镜像文件,Docker也支持用户在本地网络内创建一个只能自己访问的私有仓库。
当用户创建了自己的镜像之后就可以使用push将它上传到指定的公有或则私有仓库。这样用户下次在另一台机器上使用该镜像时,只需将其从仓库pull下来就可以了。
下面一篇文章介绍了有关上述概念的基本命令
Docker关于镜像、容器、仓库的基本命令
镜像
1.获取镜像
$ docker pull dl.dockerpool.com:5000/ubuntu:14.04dl.dockerpool.com为注册服务器,5000为端口号,ubuntu为仓库名称,14.04是镜像也是版本号
2.查看镜像信息
列出本地主机已有的所有镜像
更改变迁信息
$ docker tag dl.dockerpool.com:5000/ubuntu:latest ubuntu:latest000为镜像ID,显示这个镜像的详细信息
3.搜寻镜像
$ docker search mysql (输出信息包括镜像名字、描述、星级、是否为官方创建、是否自动创建)4.删除镜像
$ docker rmi dl.dockerpool.com:5000/ubuntu:latest注:当有该镜像创建的容器存在时,镜像文件默认是无法删除的,所以删除镜像前最好是删除所有依赖该镜像的容器,请不要用强制删除。
5.创建镜像
有三种方法:
基于已有镜像的容器创建
基于本地模板导入
基于dockerfile创建
6.存出镜像
7.载入镜像
$ docker load --input ubuntu_14.04.tar或者
docker load < ubuntu_14.04.tar8.上传镜像
$ docker push user/test:latestuser用户需要在dockerHub网站注册
容器
容器是镜像的一个运行实例,但它带有额外的可写层
1.创建容器
2.创建并启动容器
$ docker run -it ubuntu:12.04 /bin/bash3.守护态运行
$ docker run -d ubuntu:12.044.查看容器信息
$ docker ps [-a -q]查看终止状态
5.获取容器的输出信息
$ docker logs cetcet是容器ID前三个字符
6.终止容器
$ docker stop cet7.启动容器
$ docker start cet8.重启容器
$ docker restart cet9.进入容器
attach命令
缺点:所有窗口同步显示
exec命令
nsenter命令
1.找PID
2.通过PID链接容器
10.删除容器
$ docker rm [-f -l -v] cet-f 强行终止并删除
-l 删除容器的链接,保留容器
-v 删除挂载的数据卷
$ docker export cet >test.tar12.导入容器(将容器快照导入到本地镜像库)
$ cat test.tar | docker import - test/ubuntu:v1.0重新指定标签为ubuntu的镜像名称,v1.0的版本号
docker load 也可以导入镜像存储文件到本地镜像库,他比import方式的好处是:import导入镜像快照文件将丢失所有的历史记录和元数据信息。
注:通过导出容器和导入容器可以实现容器迁移(拷贝文件)
仓库
仓库是集中存放镜像的地方,一个注册服务器上有很多仓库,一个仓库中有很多镜像。
1. 登录
$ docker login2. 基本操作
查找、上传、下载
3. 自动创建
4. 查看镜像
http:///downloads
5. 更新镜像标签
$ docker tag dl.dockerpool.com:5000/ubuntu:12.04 ubuntu:12.04将前面的镜像更改为ubuntu:12.04
6. 创建私有仓库
$ docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registryregistry自动下载并启动registry容器,创建本地的私有仓库服务,默认仓库船舰的容器在/tmp/registry,可以通过-v参数来存放到指定路径上
7.管理私有仓库镜像
假设私有仓库地址为10.0.2.2,端口为5000,
更改标签名
$ docker push 10.0.2.2:5000/testpush镜像,会自动push到10.0.2.2地址的机器上
$ curl http://10.0.2.2:5000/v1/search查看仓库10.0.2.2:5000中是否含有test镜像
docker pull 10.0.2.2:5000/test在任何一台能访问到10.0.2.2地址的机器上下载镜像
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
  docker包含了三个概念,分别是镜像,仓库和容器,其中镜像是docker运行容器的一个重要的前提,更是docker的核心,仓库就是存放
本文重点给大家介绍docker镜像、容器、仓库的基本概念的知识。Docker概念Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个
镜像Docker包括三个基本概念镜像(Image)容器(Container)仓库(Repository)理解了这三个概念,就理解了Docker的整个生命周期。D
docker镜像、容器、仓库的基本概念镜像1.Docker镜像就是一个只读的模板。例如:一个镜像可以包含一个完整的CentOS操作系统环境,里面仅安装了http
最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究docker了,汗汗!docker的三大核心概念:镜像、容器、仓库镜像:类似虚拟机的镜像、用俗话说