1.1.Docker Hub公共镜像市场
官方地址为:https://hub.docker.com
1.1.1.登录
docker login命令来输入用户信息,成功后会在当前用户创建~/.docker/config.json文件来保存认证信息
1.2.1.基本操作
用户可直接通过docker search 和docker pull来查找和下载镜像
根据是否为官方提供,镜像分为2类:
- 由docker公司创建维护的镜像,这样的镜像往往使用单个单词作为名字,如:centos
- 由odcker用户维护的镜像,名字一般带有用户名称为前缀,表示某个用户下的某个仓库,由用户维护。可以通过用户名称前缀“user_name/镜像名”来指定使用某个用户提供的镜像。如:ansible/centos7-ansible
1.3.1.自动创建
自动创建(Automated Builds)是docker hub提供的自动化服务,这一功能可以自动跟随项目代码的变更而重新构建镜像。
例如用户构建了某个应用镜像,如果发了新版本,需要手动更新。而自动创建允许用户通过docker hub指定跟踪某个目标网站(目前支持github或bitbucket)上的项目,一但项目发生新的提交,则自动执行创建。
要配置自动创建,包括以下步骤:
- 创建并登录docker hub,以及目标网站如github
- 在目标网站中允许docker hub访问服务
- 在docker hub中配置一个“自动创建”类型的项目
- 选取一个目标网站中的项目(需要dockerfile)和分支
- 指定dockerfile的位置,并提交创建
之后,可以再docker hub的“自动创建”页面中跟踪每次创建的状态。
2.1.第三方镜像市场
不少云服务器商提供了镜像的下载和加速,如:腾讯云、阿里云
2.1.1.查看镜像
访问各云服务器商镜像官网
2.1.2.下载镜像
docker pull index.tenxcloud.com/docker_library/node:latest
下载后可以更新标签,保持与官方标签一致,方便使用
docker tag index.tenxcloud.com/dpcker_library/node:latest node:latest
3.1.搭建本地私有仓库
假如本机10.0.0.2
3.1.1.使用registry镜像搭建私有仓库
下载并启动一个registry容器,穿件本地的私有仓库服务。因为默认情况下仓库存放地址会是/var/lib/registry目录,我们不希望他在那的话就接-v参数改掉,如果无所谓就去掉-v参数的内容-v /opt/data/registry:/var/lib/registry
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:2
3.2.1.管理私有仓库
现在私有仓库的地址为10.0.0.2:5000
来上传试试吧
docker tag ubuntu:18.04 10.0.0.2:5000/test docker push 10.0.0.2:5000/test ##用curl查看仓库10.0.0.2:5000中的镜像 curl http://10.0.0.2:5000/v2/search
比较新的docker版本对安全性要求比较高,会要求仓库支持SSL/TSL证书。对内使用的私有仓库,可以自行配置证书或者关闭对私有仓库的安全性检查
- 首先修改docker deamon的启动参数,如下,表示信任这个库,不进行安全检查
DOCKER_OPTS="--insecure-registry 10.0.0.2:5000"
- 重启docker服务并下载镜像到本地
sudo systemctl daemon-reload sudo systemctl restart docker
docker pull 10.0.0.2:5000/test
4.1.本章小结
仓库是集中维护容器镜像的地方,为镜像文件的分发和管理提供了便捷的途径。
在企业生产环境中,往往需要使用私有镜像仓库来维护内部镜像,本文介绍了一些基础的搭建操作。
除了官方的registry项目外,我们还可以使用其他的开源方案(例如nexus)来搭建私有镜像仓库。