docker公共仓库的使用

如果使用公有仓库首先使用命令docker login登录docker,如果没有账号需要先在官网注册,注册地址https://hub.docker.com/
注册后再使用docker login登录 按照提示输入username和pawword即可

docker login

使用docker tag 对原始镜像打一个特殊标签 格式

docker tag 原始镜像  用户名/新镜像名:新tag名 


例如

docker tag redis:latest li1209/limingredis:latest


然后使用docker push命令推送镜像
docker push li1209/limingredis

等待一会就推送成功了,推送成功后在个人主页上能就能看到该镜像了,当然你也可以设置为私有。

docker本地私有仓库的构建

假设镜像服务器的ip为192.168.8.113
首先在镜像服务器上执行如下指令获取registry镜像并创建一个容器

docker run -d -p 5000:5000 --restart=always --name registry registry


仓库默认创建在容器的/var/lib/registry

在客户端上使用docker tag 对镜像进行标签标记
例如:
 

docker tag redis:latest 192.168.8.113:5000/redis:latest


然后使用docker push 上传

docker push 192.168.8.113:5000/redis:latest


此时会报类似Get https://192.168.8.113:5000/v2/: http: server gave HTTP response to HTTPS client的错误
因为默认情况下镜像服务器体用http服务而不是https,而客户端在push镜像的时候默认使用的https因此可以编辑客户端的相关配置进行修改
vi /etc/docker/daemon.json
如果之前该json文件为空则直接输入

{
"insecure-registries":["192.168.8.113:5000"]
}


如果已经有次json文件并且有其他内容则加入"insecure-registries":["192.168.8.113:5000"]即可
重启docker服务
systemctl restart docker
再次上传即可

可以通过curl 192.168.8.113:5000/v2/_catalog查看上传的镜像
从私有仓库获取镜像
docker pull 192.168.8.113:5000/redis