yum -y install docker systemctl enable docker systemctl start docker
docker pull registry docker images
docker run -d -p 4000:5000 --name registry --restart=always --privileged=true -v /registry:/var/lib/registry registry
参数说明:
-d后台执行
-p 端口映射, 宿主机4000端口映射给容器的5000端口
--restart=always 容器意外关闭后, 自动重启(如果重启docker服务, 带这个参数的, 能自动启动为Up状态, 不带这个的,不会自动启动)
-v /registry:/var/lib/registry :默认情况下,会将仓库存放于容器内的/var/lib/registry目录下,指定本地目录挂载到容器
-privileged=true :CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权,不加上传镜像会报权限错误(OSError: [Errno 13] Permission denied: ‘/tmp/registry/repositories/liibrary’)或者(Received unexpected HTTP status: 500 Internal Server Error)错误
docker exec -it 688d5d308b56 sh
1、使用docker commit命令来创建镜像
通过docker run命令启动容器 修改docker镜像内容 docker commit提交修改的镜像 docker run新的镜像
2、使用dockerfile来创建镜像
不详说
然后镜像上传就可以了
在docker公共仓库下载一个镜像
docker pull docker.io/centos
来修改一下该镜像的tag(前面必须要加上仓库域名或IP地址和端口号)
docker tag centos 10.1.50.240:4000/icos/ljy-centos
把打了tag的镜像上传到私有仓库
docker push 10.1.50.240:4000/icos/ljy-centos
因为从 docker1.3.2 开始,docker registry 默认都是使用 https 协议而不使用 http,需要修改一下配置,让你的私有仓库支持 http
[root@localhost docker]# more daemon.json { "insecure-registries":["0.0.0.0/0"] } [root@localhost docker]#
修改后,重启docker
在”/etc/docker/“目录下,创建”daemon.json“文件。在文件中写入
# 添加这一行
"insecure-registries":["10.1.50.240:4000"]
//多个私服写法,逗号分隔即可
{ "insecure-registries": [ "registry:4000", "registry2:4000" ] }
下载私有仓库镜像
docker pull 10.1.50.240:4000/icos/ljy-centos
查看本地仓库镜像
curl http://10.1.50.240:4000/v2/_catalog
原文:https://www.cnblogs.com/jinyuanliu/p/10724760.html