搭建docker本地镜像仓库
一、本地镜像仓库:也就是私有服务器,主要用于企业内部镜像的共享
二、搭建本地镜像仓库操作步骤
1.准备一台本地服务器,服务器上安装docker ce,具体步骤参考https://www.cnblogs.com/xnancy/p/17138184.html
2.docker服务器上下载registry镜像:
docker pull registry
3.创建并启动容器,同时指定服务器目录/opt/registry挂载到容器的/var/lib/registry下
mkdir -p /opt/registry #服务器上递归创建目录/opt/registry
docker run --name registry -p 5000:5000 -v /opt/registry:/var/lib/registry -d registry #以registry为镜像后台运行创建容器registry,并设置目录挂载和端口映射
可以看到registry容器已经启动
输入http://localhost:5000/v2/_catalog,查看到现在仓库为空
4.push本地镜像到仓库
此处使用busybox来进行测试,先下载busybox镜像到本地
sudo docker pull busybox
查看服务器IP地址
ifconfig
接下来修改该镜像的tag
sudo docker tag busybox 192.168.0.117:5000/busybox #这里没有设置版本号默认就是latest版本,也可以设置版本号,如192.168.0.117:5000/busybox:v1
接下来把打了tag的镜像上传到私服
sudo docker push 192.168.0.117:5000/busybox
出现上述提示,说明本地仓库默认使用的是https上传,如果是通过非https连接时进行出现该问题,为了解决这个问题,还需要修改一个配置,在启动docker server时增加启动参数,修改docker启动配置文件/lib/systemd/system/docker.service,在ExecStart最后面增加--insecure-registry 192.168.0.117:5000,如下图所示
之后重启docker服务和registry容器
systemctl daemon-reload
systemctl restart docker
docker start registry
docker ps查看运行中的容器,确保registry容器运行正常后再次运行推送镜像命令可以看到镜像推送到本地仓库成功
5.验证镜像push成功
删除本地busybox镜像
docker images #查看所有镜像
docker rmi 192.168.0.117:5000/busybox:latest #删除镜像,注意当存在镜像ID一样时只能通过镜像名称:版本号来删除
docker rmi busybox:latest #删除进行
docker images #再次查看镜像
删除了本地有关busybox的镜像后,我们可以从私有仓库中拉取下载该进行
docker pull 192.168.0.117:5000/busybox
docker images