Docker私有镜像仓库搭建
上一篇 我大致的介绍了什么是docker?,为什么使用docker以及怎么使用docker?只要多加练习,很快就能熟练的掌握这些基本的命令。
好了,话不多说,我们就直接来干货吧!
注意:命令是基于Centos7.5+的系统环境。
拉取镜像仓库
docker pull registry
更改镜像名称
# ip修改成执行执行这个命令的服务器的ip
docker tag registry:latest 172.18.14.188:5000/mytestdocker:redistry
启动私服镜像
docker run -it -p 172.18.14.188:5000:5000 -v /opt/data/registry:/var/lib/registry -d 172.18.14.188:5000/mytestdocker:redistry
镜像上传的私服库
# 可以从远程仓库拉取mysql或者redis镜像之类的来上传到私服库
docker push 172.18.14.188:5000/mytestdocker:redistry
但是这样是无法将这个镜像push到私有仓库的。需要在docker的配置文件/etc/docker/daemon.json (没有的话需要新建)中增加 “insecure-registries“参数配置:
# 启用不安全的注册表
{
"insecure-registries" : ["172.18.14.188:5000"]
}
# 重新加载配置文件,重启docker服务使配置生效
systemctl daemon-reload
systemctl restart docker
# 找到之前启动过的容器iddocker ps -a
查询私服库信息
curl http://172.18.14.188:5000/v2/_catalog
打印如下:
查询仓库中镜像
curl http://172.18.14.188:5000/v2/mytestdocker/tags/list
打印如下:
修改标签
docker tag nginx:latest 172.18.14.188:5000/nginx:latest
上传镜像到仓库
docker push 172.18.14.188:5000/nginx:latest
注意:
docker默认是不开启远程访问的。
开启远程的方法如下:
vim /usr/lib/systemd/system/docker.service
在 ExecStart 属性后面追加 -H unix:///var/run/docker.sock -H 0.0.0.0:2375
然后看看是否生效:
# 刷新配置
systemctl daemon-reload
# 重启docker systemctl restart docker
# 查看docker的运行状态 systemctl status docker
# 查看端口情况 netstat -tnlp | grep 2375