文章目录
- 前言
- 一、docker仓库是啥
- 二、公共仓库使用
- 三、(重要)私有仓库搭建使用(registry)
- 四、私有仓库配置加密及认证
- 4.1 给仓库加密
- 4.2 加用户认证
前言
在docker-镜像篇中我们学习了关于docker的概念与镜像操作docker容器技术1 --镜像篇 本篇继续学习关于docker仓库的使用
一、docker仓库是啥
参考链接docker-hub官网 Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。
Docker运行中使用的默认仓库是 Docker Hub 公共仓库。
docker hub是docker公司维护的公共仓库,用户可以免费使用,也可以购买私有仓库。
二、公共仓库使用
首先在https://cloud.docker.com/网站注册一个账号
然后在docker主机上登录
上传格式
在docker hub上新建一个公共仓库
上传镜像到docker hub
三、(重要)私有仓库搭建使用(registry)
下载registry镜像
docker pull registry:2
运行registry镜像
docker run -d --name registry -p 5000:5000 -v /opt/registry:/var/lib/registry registry
# -d 后台运行
# --name 给容器起名
# -p 映射端口 docker机端口(本地):容器端口
# -v 指定路径 本地路径:容器路径
按仓库格式打标签
docker tag webserver:v5 localhost:5000/webserver:latest
上传至私有仓库
docker push localhost:5000/webserver
启动server2,并安装docker和server1一样
server1配置了私有仓库,拿server2做测试
给server2配置加速器
[root@server2 docker]# cat daemon.json
{
"insecure-registries" : ["1.2.3.1:5000"]
}
四、私有仓库配置加密及认证
4.1 给仓库加密
用openssl工具生成加密密钥对放到/root/certs目录下
openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key -x509 -days 365 \
-out /root/certs/westos.org.crt
停止registry运行或者直接删除
docker container stop registry 或者 docker rm registry
重启registry带有加密功能
docker run -d --name registry \
-p 443:443 \
-v /opt/registry:/var/lib/registry \
-v root/certs:/certs \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key \
把公钥传给给客户机或者自身(也可以是客户机),不然无法上传下载
mkdir /etc/docker/certs.d/reg.westos.org/ -p
cp /root/certs/westos.org.crt /etc/docker/certs.d/reg.westos.org/ca.crt
docker push reg.westos.org/webserver:v0 #测试上传
4.2 加用户认证
yum install -y httpd-tools
mkdir /root/auth
htpasswd --help
htpasswd -B -c /root/auth/htpasswd haojin
htpasswd -B auth/htpasswd admin
cat auth/htpasswd
docker rm -f registry
docker run -d --name registry \
-p 443:443 \
-v /opt/registry:/var/lib/registry \
-v "$(pwd)"/certs:/certs \
-v "$(pwd)"/auth:/auth \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd registry
测试,这里不可以上传和下载
docker images
docker tag ubuntu:latest reg.westos.org/ubuntu:latest
docker push reg.westos.org/ubuntu:latest
用户登陆仓库,测试就可以上传下载了
docker login reg.westos.org
docker push reg.westos.org/ubuntu:latest
登陆的密码信息保存目录:
/root/.docker/config.json
---仓库基本使用说到这,下一篇企业级仓库harbor的使用---