docker run --entrypoint htpasswd registry:2.7.0 -Bbn username password > /root/registry/auth/passwd
apt-get install apache2 #安装完成之后再执行下面的命令,参数和上面提供的参数使用方式相同 htpasswd -Bbn username password > /root/registry/auth/passwd
做完准备工作,就先把registry容器跑起来。
docker run -dp 5000:5000 \ --restart=always --name registry \ -v /root/registry/data:/var/lib/registry \ -v /root/registry/auth:/auth \ -e REGISTRY_AUTH=htpasswd \ -e REGISTRY_AUTH_HTPASSWD_REALM=Registry_Realm \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/passwd \ registry:2
vi /etc/docker/daemon.json #在打开的文件中添加(没有就自己创建) {
#ip为运行registry容器的服务器的ip地址 "insecure-registries": ["http://ip:5000"] } #保存之后重启docker即可生效 systemctl restart docker #重启docker之后执行 docker login ip:5000 #根据提示输入之前设置的用户名和密码即可。
docker run -d --registry=always --name watchtower \ -v /var/run/docker.sock:/var/run/docker.sock \ #监视所有在docker中运行的容器 #config.json为登录私有库的认证信息,我用的是root账户,所以使用/root/目录,根据自己的账号改变 -v /root/.docker/config.json:/config.json \ containrrr/watchtower \ -i 10 -c # -i 10 表示每隔10s扫描一次 -c 表示清除所有镜像
docker build -t index:v3 -f htmlfile . #构建新版本的镜像 docker rmi ip:5000/watch:v1.0 #删除之前的老版镜像 docker tag index:v3 ip:5000/watch:v1.0 #创建新版的镜像 docker push ip:5000/watch:v1.0 #对registry私有库里的镜像更新 #特别注意push到私有库的镜像名称必须和运行的项目容器的镜像名称相同,不然watchtower会判定项目容器的镜像没有更新。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221856.html原文链接:https://javaforall.net
