文章目录

  • Dockers Hub
  • 第三方私有仓库
  • 搭建私有仓库


Dockers Hub

例如:仓库地址private-docker.com/ubuntu,private-docker.com 是注册服务器地址,Ubuntu是仓库名。
可以使用docker login 来登录仓库。

第三方私有仓库

网易蜂巢

搭建私有仓库

使用 registry 创建私有仓库
安装 ocker 可以通过官方提供的 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.

管理私有仓库
首先在本笔记本上搭建私有仓库,查看其地址为 10 0.2.2:5000 ,然后在虚拟机系统( Ubuntu 18.04 )里测试上传和下载镜像
Ubuntu 18.04 系统查看已有的镜像:

docker images
REPOSITORY TAG IMAGE CREATED VIRTUAL ZE
ubun tu 18 04 452a96d81c30 6 weeks ago 79 . 6 MB

使用 docker tag 命令将这个镜像标记为工0.0.2.2:5000/test (格式为 docker tag IMAGE [:TAG] [REGISTRY.HOST/] [USERNAME/] NAME [:TAG ])

$ docker tag ubuntu lB 04 0.0.2 5000/test
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
Ubuntu 18.04 452a96d81c30 6 weeks ago 79.6 MB
10 . 0.2.2 : 5000/test latest 452a96d81c30 6 weeks ago 79.6MB

使用 docker push 上传标记的镜像:

docker push 10.0.2.2:5000/ test
The push refers to a repos tory [工 0 2.2:5000 / test) (len: 1)
Sending rnage list
Pushing repos tory 10.0.2 2:5000/test (1 tags)
Image 511136ea3c5a already pushed, skipping
Image 9bad880da3d2 already pushed, skipping
Image 25fllf5fb0cb already pushed, skipping
Image ebc34468f71d already pushed, skipping
Image 2318d26665ef already pushed, skipping
Image 452a96d81c30 already pushed, skipping
Pushing tag for rev [452a96d81c30) on {http ://工 0.0.2.2:5000 vl/repositories/test/tags/latest}

curl 查看仓库工 0.0.2.2:5000 中的镜像:

$ curl http://10 .O .2. 2 :5000/v2/search
{ "nurn_results ": ,"query ":" "," results" : [{"description":" " , "name" :"library/test"}]}

在结果中可以看到"description":" " , “name” :“library/test”,表明镜像已经成功上传了

现在可以到任意 台能访问到工 10.0.2.2 地址的机器去下载这个镜像了

比较新的 Docker 版本对安全性要求较高,会要求仓库支持 SSL/TLS 证书 对于内部使
用的私有仓库,可以自行配置证书或关闭对仓库的安全性检查

首先,修改 Docker daemon 的启动参数,添加如下参数,表示信任这个私有仓库,不进
行安全证书检查:

DOCKER_OPTS;”--insecure-registry 10.0.2.2:500 。”

之后重启 Docker 服务,并从私有仓库中下载镜像到本地

$ sudo service docker restart
$ docker pull 10.0.2.2:5000/test
Pull ng repository 10.0.2 . 2 : 5000/test
452a96d81c30: Download complete
511136ea3c5a: Download complete
9bad880da3d2 Download complete
25fllf5fb0cb: Download complete
ebc34468f7ld: Download complete
2318d26665ef : Download complete
$ docker images
REPOS TORY TAG IMAGE ID CREATED RTUAL SIZE
0.0.2.2:5000 /test latest 452a96d8lc30 6 weeks ago 79 . 6MB

下载后,还可以添加一个更通用的标签 ubuntu: 18. 04 ,方便后续使用

$ docker tag 10 .0.2.2 :5000 /test ubuntu : lB.04

注意事项
如果要使用安全证书,用户也可以从较知名的 CA 服务商(如 ver isign )申请公开的

SSL/TLS 证书,或者使用 OpenSSL 等软件来自行生成