REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04 ba5877dc9bec 6 days ago 199.3 MB
使用docker tag命令将这个镜像标记为10.0.2.2:5000/test
$ docker tag ubuntu:14.04 10.0.2.2:5000/test
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 14.04 ba5877dc9bec 6 days ago 199.3 MB
10.0.2.2:5000/test latest ba5877dc9bec 6 days ago 199.3 MB
使用docker push上传标记的镜像:
$ docker push 10.0.2.2:5000/test
用curl查看仓库10.0.2.2:5000中的镜像:
$ curl http://10.0.2.2:5000/v1/search
{"num_results": 1, "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:5000"
之后重启Docker服务,并从私有仓库中下载镜像到本地:
$ sudo service docker restart
$ docker pull 10.0.2.2:5000/test
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
10.0.2.2:5000/test latest ba5877dc9bec 6 days ago 199.3 MB
下载后,还可以添加一个更通用的标签ubuntu:14.04:
$ docker tag 10.0.2.2:5000/test ubuntu:14.04
如果要使用安全证书,用户也可以从较知名的CA服务商(如verisign)申请公开的SSL/TLS证书,或者使用openssl等软件来自行生成。