Docker自建镜像服务器
#Docker安装
apt install docker.io
#1 安装启动 rigistry
docker run --name registry -d -p 5000:5000 --restart=always -v /opt/data/registry:/var/lib/registry registry
#查看镜像清单
docker images
#查看仓库镜像
curl 域名或IP:5000/v2/_catalog
#客户端拉取官方镜像
docker pull nginx
#标记镜像
docker tag nginx:latest 域名或IP/nginx:latest
#上传镜像
docker push 域名或IP/nginx
#默认报错 HTTP和HTTPS
修改客户端 /etc/docker/daemon.json(注意a和e的位置)
{
"insecure-registries":["域名或IP:5000"]
}
#2 至此默认HTTP传输完成,若公网操作,需要使用证书,看下方操作。
#在用户目录下操作
#创建证书目录
mkdir certs
#生成证书,如果有自己的证书,使用自己的证书
openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/docker.key -x509 -days 365 -out certs/docker.crt
#启动docker rigistry
docker run -d \
--name registry \
-v "$(pwd)"/certs:/certs \
-v /opt/data/registry:/var/lib/registry \
-e REGISTRY_HTTP_ADDR=0.0.0.0:5000 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/docker.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/docker.key \
-p 5000:5000\
--restart=always \
registry
#证书拷贝至客户端电脑
mkdir /etc/docker/certs.d/域名/
cp docker.crt /etc/docker/certs.d/域名/ca.crt
#重启Docker
systemctl daemon-reload
systemctl restart docker
#3 账户密码登陆 docker login
docker stop dockername
docker rm dockername
#创建保存密码的文件
mkdir /opt/data/auth
cd /opt/data
#创建htpasswd账户和密码
htpasswd -cB auth/htpasswd admin #添加管理,注意参数,第一个带c,第二个不带
htpasswd -B auth/htpasswd user #添加用户
#启动容器
docker run -d -p 5000:5000 --restart=always --name registry \
-v /opt/data/registry:/var/lib/registry \
-v /opt/data/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
registry
#登陆
Docker login 域名或IP
#上传
Docker pull 域名或IP:5000/nginx
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。