拉取 registry 镜像
docker pull registry
创建宿主机目录,持久化存储
mkdir /opt/registry
启动容器
docker run -d -p 5000:5000 --restart=always --name registry -v /opt/registry:/var/lib/registry registry
修改docker配置文件
vim /etc/docker/daemon.json
"insecure-registries": ["192.168.2.41:5000"]
制作本地镜像并push到本地仓库
docker tag nginx 192.168.2.41:5000/peng/nginx:v1
本地仓库总镜像名称固定格式,192.168.2.41:5000(私有仓库地址),peng(项目名称) ,nginx:v1(镜像名称)
docker push 192.168.2.41:5000/peng/nginx:v1
docker images
验证,拿一台机器拉去192.168.2.41仓库中的镜像
docker pull 192.168.2.41:5000/peng/nginx:v1
本地仓库加安全认证创建容器
生成密码:
yum install httpd-tools -y
mkdir /opt/registry-auth/ -p
htpasswd -Bbn peng 123 > /opt/registry-auth/htpasswd
重新启动带有秘钥功能的registry容器
把之前启动的registry容器删除掉
docker run -d -p 5000:5000 -v /opt/registry-auth/:/auth/ -v /opt/registry:/var/lib/registry --name=register-auth --restart=always -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry
向本地仓库中推送镜像
docker tag centos 192.168.2.41:5000/peng/centos:v1
按照没有密码认证时的推送方法,会提示没有认证
docker push 192.168.2.41:5000/peng/centos:v1
所以 我们push前需要认证登录
docker login 192.168.2.41:5000
另一台机器验证pull
docker login 192.168.2.41:5000
docker pull 192.168.2.41:5000/peng/centos:v1