1 Docker Hub公共镜像仓库
1.1 登录
通过docker login
命令输入用户名、密码和邮箱完成注册和登录。注册成功后,本地用户目录下会自动创建.docker/config.json
文件,保存用户的认证信息,登录成功后,用户可以上传个人制作的镜像到Docker Hub。
1.2 基本操作
无需登录即可通过docker search
命令来查找官方仓库中的镜像,并利用docker pull
命令下载其到本地。
通过docker search
命令搜索到的镜像,根据是否官方提供,可将这些镜像资源分为两类:一种是类似于centos这样的基础镜像,也称为根镜像,是由Docker公司提供的,往往使用单个单词作为名字另一种类型的镜像,比如ansible/centos7-ansible镜像,是由Docker用户用户名称前缀“user_name/镜像名”来指定使用某个用户提供的镜像
1.3 自动创建
允许用户通过Docker Hub指定跟踪一个目标网站上的项目,一旦项目发生新的提交,则自动执行创建配置自动创建,包括如下步骤:
1. 创建并登陆Docker Hub,以及目标网站如Github
2. 在目标网站中允许Docker Hub访问服务
3. 在Docker Hub中配置一个“自动创建”类型的项目
4. 选取一个目标网站中的项目(需要含Dockerfile)和分支
5. 指定Dockerfile的位置,并提交创建
2 搭建本地私有仓库
2.1 使用registry镜像创建私有仓库
docker run -d -p 5000:5000 registry:2
默认情况下,仓库会被创建在容器的/var/lib/registry目录下。可以通过-v参数来将镜像文件存放在本地的指定路径。例如:将上传的镜像放到/opt/data/registry目录
docker run -d -p 5000 -v /opt/data/registry:/var/lib/registry registry:2
此时,本地启动一个私有仓库服务,监听端口为5000
2.2 管理私有仓库
创建私有仓库:例如私有仓库地址为192.168.1.2:5000
1. 在docker宿主机上查看已有镜像:docker images
2. 使用docker tag 命令标记要上传的镜像为192.168.1.2:5000/test:docker tag ubuntu:18.04 192.168.1.2:5000/test
3. 使用docker push 上传标记的镜像:docker push 192.168.1.2:5000/test
4. 使用curl查看仓库192.168.1.2:5000中的镜像:curl http://192.168.1.2:50000/v2/search
5. 较新的Docker版本对安全性要求较高,会要求仓库支持SSL/TLS证书。对于内部使用的私有仓库,可以自行配置证书或关闭对仓库的安全性检查。首先,修改Docker daemon的启动参数,添加如下参数,表示信任这个私有仓库,不进行安全证书检查:
DOCKER_OPTS="--insecure-registry 192.168.1.2:5000"
然后重启Docker服务使配置内容生效。除了官方的registry项目外,还可以使用其他开源方案(例如:nexus)来搭建私有化的容器镜像仓库