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