前言
docker私有仓库解决方案很多,比如registry、harbor,我这里使用的是registry,harbor之后我会补充一下。
一、服务端
1、安装依赖
rpm -ivh epel-release-latest-7.noarch.rpm
2、安装docker
yum install -y docker
3、启动docker
systemctl start docker
systemctl enable docker
4、下载registry镜像(该镜像用于构建本地私有仓库环境)
docker pull registry
5、查看下载registry镜像
docker images
6、递归创建镜像存放目录
mkdir -p /opt/data/registry
7、启动镜像
docker run -d -p 5000:5000 --privileged=true -v /opt/data/registry:/var/lib/registry registry
#参数详解
i:保持sdtin开放状态
d:使容器以守护进程方式后台运行,并打印容器id
t:分配一个tty(虚拟终端设备)
v: 绑定挂载一个容器内的路径到宿主机路径
p:映射一个容器的端口到宿主机端口
restart:当容器退出时的重启策略
name: 给容器命名一个名称
-–privileged=true :CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权,不加上传镜像会报权限错误
-v /opt/data/registry:/var/lib/registry:默认情况下,会将仓库存放于容器内的/tmp/registry目录下,指定本地目录挂载到容器
二、客户端
1、安装依赖
rpm -ivh epel-release-latest-7.noarch.rpm
2、安装docker
yum install -y docker
3、修改配置文件
vim /etc/sysconfig/docker
OPTIONS='--insecure-registry 192.168.137.129:5000'
4、启动docker
systemctl start docker
systemctl enable docker
三、客户端上传镜像
1、修改镜像的tag
docker tag 原名 修改名
docker tag centos 192.168.137.129:5000/centos
2、把打了tag的镜像上传到私有仓库
docker push 192.168.137.129:5000/centos
3、查看镜像的存储目录和文件(服务端)
tree /opt/data/registry/docker/registry/v2/repositories
4、测试从仓库拉取镜像
(1)删除docker客户端镜像
docker rmi 192.168.137.129:5000/centos
(2)从仓库拉取刚才删除的镜像
docker pull 192.168.137.129:5000/centos
5、常用命令
获取仓库内的镜像:
curl -XGET http://192.168.137.129:5000/v2/_catalog
获取某个镜像的标签列表:
curl -XGET http://192.168.137.129:5000/v2/centos/tags/list
结语
docker的registry缺点很明显,没有图形化界面,查询不太方便,之后会为大家更新harbor的使用方法。