天天看点

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建

  • 一、本地容器仓库加密认证
    • 加密
    • 认证
  • 二、harbor容器仓库

一、本地容器仓库加密认证

加密

创建加密认证的密钥

创建目录,保存认证和钥匙

mkdir -p certs
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

生成密钥

openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/westos.org.key -x509 -days 365 -out certs/westos.org.crt
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

解析hyl.westos.org

vim /etc/hosts

cat /etc/hosts

172.25.9.1      server1 hyl.westos.org
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

查看密钥和认证整数

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

拉起容器,

docker run -d --name registry -v /opt/registry:/var/lib/registry -p 443:443 -v "$(pwd)"/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  registry
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

查看容器是否启动

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

查看容器网络端口映射

docker port registry
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

标记重命名nginx并归类到本地hyl.westos.org仓库中

docker tag nginx:latest hyl.westos.org/nginx:latest
           

推行上传

docker push hyl.westos.org/nginx:latest
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

报错原因,读取不到认证,

将认证移动到指定目录

cd /etc/docker/
ls
mkdir certs.d
cd certs.d/
mkdir hyl.westos.org
cd hyl.westos.org/
cp ~/certs/westos.org.crt ca.crt
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

删除,重新标记上传,内容依然存在

docker rmi hyl.westos.org/nginx

docker tag nginx:latest hyl.westos.org/nginx:latest
docker push hyl.westos.org/nginx:latest
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

测试查看上传的内容

curl -k https://hyl.westos.org/v2/game2048/tags/list
curl -k https://hyl.westos.org/v2/_catalog
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

认证

家目录下创建认证目录并进入

mkdir auth
cd auth/
           

安装生成认证的软件httpd-tools

yum install -y httpd-tools
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

查看用法

htpasswd --help
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

为admin用户和hyl用户添加认证信息和密码

htpasswd -Bc auth/htpasswd admin
htpasswd -B auth/htpasswd hyl
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

查看已经生成的认证

cat auth/htpasswd
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

删除之前的仓库信息

docker ps
docker rm -f registry
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

重新拉起仓库容器

docker run -d --name registry -v /opt/registry:/var/lib/registry -p 443:443 -v "$(pwd)"/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 -v "$(pwd)"/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd  registry
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

查看容器进程是否开启

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

查看日志,启动无异常

docker logs registry
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

注意:

仓库认证后,上传下载前需要登陆

未login之前pull&push显示未认证

docker pull hyl.westos.org/nginx
docker push hyl.westos.org/nginx
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

login后可以拉取并推送,也可以查看认证

登陆认证

docker login hyl.westos.org
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库
docker push hyl.westos.org/nginx
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

查看认证信息

cat /root/.docker/config.json
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

退出后,认证信息消失

docker logout hyl.westos.org
cat /root/.docker/config.json
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

server2:远程拉取server1本地仓库的内容

安装docker,并配置取消warning

yum install -y docker-ce
systemctl enable --now docker
docker info
vim /etc/sysctl.d/docker.conf
sysctl --system
docker info
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

修改本地解析

vim /etc/hosts
cat /etc/hosts
           
172.25.9.1      server1 hyl.westos.org
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

未login之前pull会报错显示未认证

docker pull hyl.westos.org/nginx
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

解析太慢可修改解析到8.8.4.4

将server1的认证信息传给server2

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

认证登陆

docker login hyl.westos.org
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

认证后拉取无异常

docker pull hyl.westos.org/nginx
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

二、harbor容器仓库

docker-compose : 主要用于在单机层面如何管控多个服务器

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

修改harbor配置文件

cd /usr/local/harbor/

vim harbor.yml
           
hostname: hyl.westos.org
...

  certificate: /data/certs/westos.org.crt
  private_key: /data/certs/westos.org.key

harbor_admin_password: westos

           

将server1的认证信息移动到/data/中

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

使用脚本安装并启动harbor

sh install.sh
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

安装启动成功提示

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

查看是否开启

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

浏览器访问:172.25.9.1/harbor

也可以解析到hyl.westos.org中

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

网页访问内容:

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

命令行,按照amdin管理用户进入

docker login hyl.westos.org
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

上传项目到library

docker tag nginx:latest hyl.westos.org/library/nginx:latest
docker push hyl.westos.org/library/nginx:latest
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

可以在网页中查看日志并且在library中找到项目

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

添加默认仓库路径

cd /etc/docker/
vim daemon.json
systemctl reload docker.service
cat daemon.json
           
{
  "registry-mirrors": ["https://hyl.westos.org"]
}
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

可以查看到新的添加

docker info
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

server2进行同样操作并测试

将.json传给server2

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

server2:

cd /etc/docker/

cat daemon.json

{
  "registry-mirrors": ["https://hyl.westos.org"]
}

           

刷新docker,读取.json文件

systemctl reload docker.service
docker info
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

相对路径下载nginx

docker pull nginx
docker images
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

网页查看下载日志:

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

删除后可以直接run 拉取仓库的nginx

docker rmi nginx
docker images
docker run -d --name demo nginx
docker ps
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

项目维护人员对项目进行管理,首先web添加项目westos和项目维护人员hyl。

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

添加用户hyl

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

添加用户到项目成员

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

添加镜像到westos项目中

docker tag game2048:latest hyl.westos.org/westos/game2048:latest
docker push hyl.westos.org/westos/game2048:latest
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

以hyl的用户登陆,拉取镜像

docker login hyl.westos.org
docker pull hyl.westos.org/westos/game2048:latest
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

web界面查看日志

企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

docker logout hyl.westos.org

docker login hyl.westos.org

docker logout hyl.westos.org

证书匹配,

/etc/docker/certs.d/hyl.westos.org/ca.crt 必须与/data/certs/westos.org.crt 保持一致。

若修改其一,另一个也得同步修改

其余功能:

harbor仓库签名,扫描,启用docker内容信任,部署根证书,不再一一展示,可查看官方文档进行结合web操作即可

重新安装harbor步骤

1.先down掉

docker-compose down
           
企业运维实战--最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建一、本地容器仓库加密认证二、harbor容器仓库

2.sh install.sh --with+想添加的参数