仓库(repository)是集中存放镜像的地方,公共仓库,私有仓库
注册服务器(registry)是存放仓库的具体服务器
1.登陆
docker login
Username: xxxxx
~/.docker/config.json
2.基本操作
无需登陆即可 docker search,docker [image] pull
3.自动创建
Automated Builds 自动根随项目代码的变更而重新构建镜像。
例如,用户创建了某应用镜像,如果应用发布新版本,用户需要手动更新镜像。而自动创建则允许用户通过docker hub指定跟踪一个目标网站(github, bitbucket)上的项目,一旦项目发生提交,则自动执行创建。
要配置自动创建,包括如下步骤:
- 创建并登陆docker hub,以及目标网站
- 在目标网站中允许docker hub访问服务
- 在docker hub中配置一个“自动创建”类型的项目
- 选取一个目标网站的项目(需要含Dockerfile)和分支
- 指定Dockerfile的位置,并创建提交
第三方镜像
时速云,等
pull 时要在镜像名称前添加注册服务器的具体地址
搭建本地私有仓库
1.使用官方提供的registry镜像创建
docker run -d -p 5000:5000 registry:2
这将自动下载并启动一个registry容器,创建本地的私有仓库服务
默认情况下,仓库被创建在容器的/var/lib/registry目录下。可以通过 -v 参数将镜像文件存放在本地的指定路径
例如,将上传的镜像放到 /opt/data/registry 目录:
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry:2
此时,本地将启动一个私有仓库服务,监听 5000 端口
2.管理私有仓库
docker tag ubuntu:18.04 10.0.2.2:5000/test
docker push 10.0.2.2:5000/test
curl http://10.0.2.2:5000/v2/search
push后,能访问到10.0.2.2的机器都可以下载该镜像了
比较新的docker对安全性要求较高,会要求仓库支持 SSL/TLS 证书。可以自行配置证书或关闭安全检查
首先,修改docker daemon的启动参数,添加如下参数,表示信任这个私有仓库,不进行安全检查:
DOCKER_OPTS="--insecure-registry 10.0.2.2:5000"
Docker 的配置文件可以设置大部分的后台进程参数,在各个操作系统中的存放位置不一致
在 ubuntu 中的位置是:/etc/default/docker
在 centos6 中的位置是:/etc/sysconfig/docker
在 centos7 中的位置是:/etc/docker/
之后重启 docker 服务
sudo service docker restart
docker pull 10.0.2.2:5000/test
可以向CA申请证书,或者使用 OpenSSL自行生成
除了registry,还可以使用nexus等开源方案搭建私有仓库
亚马逊 ubuntu 18.04
DOCKER_OPTS="--insecure-registry 18.222.101.163:5000" 不管用
$ cat /etc/docker/daemon.json
{
"insecure-registries": ["xxx.xxx.xxx.xxx:5000"]
}
$ service docker restart