今后将陆续介绍容器云这块内容, 从docker的各个组件介绍和使用到最流行的编排工具kubernetes的介绍和使用。
此篇介绍docker的镜像仓库和使用。docker最大的优势就是能够实现跨平台的快速部署,快到什么程度呢?秒级的部署,差不多眨个眼就部署好了,剩下的就是程序漫长的启动过程...
为何能够如此之快呢?深层次底层的东西就在此不阐述,主要的思想就是打包,可以理解为打包了一个能够让程序跑起来的操作系统,包括各种依赖包,就如同一个集装箱里面装了各种所需要的设备,不需要的不放,所以很多容器里面通常会缺少各种常用的命令。总之一句话,一切围绕程序,程序依赖的组件必须要,不需要的就不用,甚至把很多系统常用的工具都会去除。才能让docker变得小而精,让部署更快,基本可以忽略docker的损耗。
把这些依赖包和程序以及必要的操作系统打包到一起形成的东西称之为镜像,镜像存放的地方叫做镜像仓库。镜像仓库分为公有仓库和私有仓库。最大的公有仓库是dockerhub,上面有各种官方的和非官方分享的镜像都可以免费试用,docker默认拉取的镜像就是从dockerhub来的。私有仓库就是只允许自己访问的仓库。
这里介绍如何创建一个私有镜像仓库。创建一个私有镜像仓库非常简单。
-
docker run -d -p 5000:5000 --restart=always --privileged=true -v /opt/registry/:/var/lib/registry --name registry registry:2
使用
registry:2 容器构建私有仓库,代理出仓库的端口5000,把仓库的存储挂载出来,可以采用分布式存储方案。假设仓库服务器地址172.17.3.212,那么只要把镜像命名为 172.17.3.212:5000/jenkins:1.10, 第一段为服务器地址,第二段为镜像在仓库的目录,第三段为镜像版本。
-
通过 docker push 172.17.3.212:5000/jenkins:1.10 就可以将镜像上传到私库
-
通过 docker run -d -p 8080:8080 --name jenkins 172.17.3.212:5000/jenkins:1.10 从私库拉取镜像并构建jenkins
新版的docker拉取镜像默认都是使用https协议,而私库是http协议拉取就会报错,这时候就需要在拉取的docker节点上进行配置,编辑/etc/docker/daemon.json(没有就创建)
-
{
-
"registry-mirrors": [""], #这里是替换默认dockerhub的仓库地址,可以写国内的地址
-
"insecure-registries": ["172.17.3.212:5000"] #将http的地址都写入这里就可以拉取镜像
-
}
重启docker生效。
以上介绍了最简单的私库创建使用,只满足了最基本的上传和下载需求,如果要查看镜像以及版本就比较费劲了。因此企业级的仓库都使用habor,具备页面查看镜像和版本信息,权限分类,镜像分组,分布式集群,安全等各种强大的功能,当然越复杂维护成本也越高,所以很多企业直接使用云服务。
后面将介绍镜像如何创建,创建的命令都写在dockerfile的文件中,dockerfile的语法,创建的命令等。
阅读(806) | 评论(0) | 转发(0) |