docker私有仓库,使用自签名证书和身份验证控制访问(数据传输加密和身份验证)(centos8)(四)

服务器名称IP地址说明
服务器200192.168.1.200docker私有仓库
服务器210192.168.1.210docker客户端
软件版本号查询命令
dockerDocker version 18.09.1, build 4c52b90docker -v
centos8CentOS Linux release 8.0.1905 (Core)cat /etc/redhat-release

一、服务器安装docker,且已下载仓库镜像

参照博客:https://blog.csdn.net/renfeigui0/article/details/103755823

二、私有仓库服务器200使用自签名证书和身份验证方式创建容器

1、私有仓库服务器200停止并删除已创建的仓库容器my-registry。

 docker stop  my-registry
 docker rm  my-registry

2、私有仓库服务器200使用自签名证书和身份验证方式创建容器my-registry。

docker run -d -p 5000:5000 --restart=always --name my-registry \
-v /registry:/registry  \
-e REGISTRY_STORAGE_DELETE_ENABLED=true  \
-e REGISTRY_HTTP_ADDR=0.0.0.0:5000  \
-v /etc/docker/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/yuming.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/yuming.key \
-v /etc/docker/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
registry:latest

说明
-d,后台运行容器
-p 5000:5000 ,映射容器5000端口至宿主机5000端口。
- - restart always,设置重新启动策略,在docker重新启动时自动重新启动容器my-registry。
- -name my-registry,给容器命名。
-v /registry:/registry,把docker容器中/registry目录的数据加载到宿主机的/registry目录,宿主机的/registry目录如果不存在会自动创建。目的是为了防止docker私有仓库这个容器被删除时,仓库里的镜像也会被删除。宿主机查看到的私有仓库镜像就在这个目录中。
-e REGISTRY_STORAGE_DELETE_ENABLED,设置是否允许删除仓库存储的镜像。
-e REGISTRY_HTTP_ADDR=0.0.0.0:5000,设置镜像仓库地址。
-v 本机目录/etc/docker/certs挂载至容器的目录/certs。
-e REGISTRY_HTTP_TLS_CERTIFICATE:设置证书的位置。
-e REGISTRY_HTTP_TLS_KEY:设置私钥的位置。
-v 挂载本机的/etc/docker/auth目录至容器/auth目录。
-e REGISTRY_AUTH:设置环境变量告诉容器密码文件名。
-e “REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm”:设置身份验证的领域。
-e REGISTRY_AUTH_HTPASSWD_PATH:设置环境变量告诉容器存放账户、密码的位置。

三、客户端210测试上传、下载镜像

1、客户端210复制服务器200的certs证书到新建的docker数据目录中。

mkdir -p  /etc/docker/certs.d/yuming/
scp root@192.168.1.200:/etc/docker/certs/yuming.crt  /etc/docker/certs.d/yuming/ca.crt

2、客户端210为hello-world镜像创建新标签,当标签的第一部分是主机名和端口时,上传镜像时docker会将其解释为镜像仓库的位置。

docker images
docker  tag  hello-world:latest  192.168.1.200:5000/client210-crt-user-hello-world

3、客户端210上传创建新标签的镜像至私有仓库。

docker  push  192.168.1.200:5000/client210-crt-user-hello-world

4、客户端210测试下载镜像过程:查看、删除docker客户端服务器210本地镜像,确认本地已无镜像,下载私有仓库服务器200镜像,查看下载到本地的镜像。

docker images
docker rmi  192.168.1.200:5000/client210-crt-user-hello-world
docker images
docker pull 192.168.1.200:5000/client210-crt-user-hello-world
docker images

在这里插入图片描述

四、使用web界面浏览、删除docker私有仓库镜像

1、私有仓库服务器200停止并删除已创建的web界面管理容器registry_web。

docker stop registry-web
docker rm registry-web

2、私有仓库服务器200,创建启动容器registry-web,。

docker run -itd -p 8080:8080 --name registry_web --link my-registry \
-e REGISTRY_URL=https://192.168.1.200:5000/v2 \
-e REGISTRY_NAME=192.168.1.200:5000 \
-e REGISTRY_READONLY=false \
-e REGISTRY_BASIC_AUTH="dXNlcjAxOjEyMzQ1Ng=="  \
-e REGISTRY_TRUST_ANY_SSL=true \
hyper/docker-registry-web:latest

说明
-d,后台运行容器。
-p 8080:8080,映射容器8080端口至宿主机8080端口。
- - restart always,设置重新启动策略,在docker重新启动时自动重新启动容器my-registry。
- -name my-registry 给容器命名。
--link ,设置连接的仓库。
-e REGISTRY_URL,设置仓库URL,如果使用证书创建容器,仓库URL以https开头
-e REGISTRY_NAME,设置仓库主机。
-e REGISTRY_READONLY ,设置web界面是否显示读写、删除按钮。
-e REGISTRY_BASIC_AUTH,设置web界面基本身份验证信息。
-e REGISTRY_TRUST_ANY_SSL,设置信任任何SSL的连接

3、局域网内其他主机打开浏览器,输入网址http://192.168.1.200:8080,访问私有仓库镜像如下图,还可以删除镜像。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在CentOS 7上安装Docker私有仓库的步骤如下: 1. 首先,确保已经安装了Docker。如果没有安装,请使用以下命令安装: ``` sudo yum install docker ``` 2. 接下来,创建一个目录来存储私有仓库的镜像和数据: ``` sudo mkdir /opt/docker-registry ``` 3. 使用以下命令启动私有仓库容器: ``` sudo docker run -d -p 5000:5000 --name registry \ -v /opt/docker-registry:/var/lib/registry \ registry:2 ``` 此命令将从Docker Hub下载最新版本的Registry镜像,并将其启动在名为“registry”的容器中。容器将在本地端口5000上监听传入的连接,并将所有的镜像和数据存储在“/opt/docker-registry”目录中。 4. 配置Docker客户端以使用私有仓库。在需要使用私有仓库的机器上,编辑或创建“/etc/docker/daemon.json”文件,将以下内容添加到其中: ``` { "insecure-registries": ["myregistrydomain.com:5000"] } ``` 将“myregistrydomain.com”替换为私有仓库的主机名或IP地址。此配置告诉Docker客户端,可以信任指定的私有仓库,允许从该仓库拉取镜像。 5. 重新启动Docker守护程序: ``` sudo systemctl restart docker ``` 现在,您可以将镜像推送到私有仓库中,并从该仓库拉取镜像。例如,要将名为“myimage”的镜像推送到私有仓库,请执行以下命令: ``` sudo docker tag myimage myregistrydomain.com:5000/myimage sudo docker push myregistrydomain.com:5000/myimage ``` 要从私有仓库中拉取该镜像,请使用以下命令: ``` sudo docker pull myregistrydomain.com:5000/myimage ``` ### 回答2: 在CentOS7中安装Docker私有仓库可以按照以下步骤进行: 步骤1:安装Docker 首先,你需要在CentOS7上安装Docker。可以通过执行以下命令来安装最新版本的Docker: ``` sudo yum install docker ``` 步骤2:启动Docker服务 安装完成后,启动Docker服务: ``` sudo systemctl start docker ``` 步骤3:下载Docker私有仓库镜像 接下来,我们需要下载Docker私有仓库镜像。可以通过运行以下命令来下载最新版本的Docker仓库镜像: ``` sudo docker pull registry ``` 步骤4:创建Docker私有仓库容器 下载完镜像后,我们需要创建Docker私有仓库容器。可以运行以下命令: ``` sudo docker run -d -p 5000:5000 --restart=always --name registry registry ``` 这样就创建了一个名为“registry”的Docker私有仓库容器,并将其映射到主机的5000端口。 步骤5:测试私有仓库 现在,我们可以测试私有仓库是否正常工作。可以通过运行以下命令在私有仓库中创建一个映像: ``` sudo docker tag <镜像名> localhost:5000/<镜像名> sudo docker push localhost:5000/<镜像名> ``` 然后,从私有仓库中拉取这个映像: ``` sudo docker pull localhost:5000/<镜像名> ``` 如果能够成功创建和拉取映像,说明Docker私有仓库已经安装并运行成功。 步骤6:设置Docker客户端使用私有仓库 如果你希望在其他机器上访问私有仓库,需要在每个Docker客户端上修改Docker配置文件。打开配置文件`/etc/docker/daemon.json`,添加以下内容: ``` { "insecure-registries" : ["<私有仓库地址>:5000"] } ``` 保存并关闭文件后,重新启动Docker服务: ``` sudo systemctl restart docker ``` 现在,你可以在其他Docker客户端上使用私有仓库了。 这就是在CentOS7中安装Docker私有仓库的步骤。希望对你有所帮助。 ### 回答3: 在CentOS 7中安装Docker私有仓库需要以下步骤: 1. 安装Docker:首先,需要安装Docker Engine,可以使用以下命令进行安装: ``` sudo yum install docker -y ``` 2. 启动Docker服务:安装完成后,启动并激活Docker服务: ``` sudo systemctl start docker sudo systemctl enable docker ``` 3. 创建Docker私有仓库容器:使用以下命令创建并启动Docker私有仓库容器: ``` sudo docker run -d -p 5000:5000 --restart=always --name registry registry:2 ``` 这将在本地主机的5000端口上启动私有仓库容器,并设置自动启动。 4. 配置Docker客户端:为了让Docker客户端能够与私有仓库通信,需要在客户端的Docker配置文件中添加以下内容: ``` sudo vi /etc/docker/daemon.json ``` 在打开的文件中添加以下内容保存并退出: ``` { "insecure-registries" : ["your-registry-domain:5000"] } ``` 将"your-registry-domain"替换为您的主机名或IP地址。 5. 重启Docker服务:在修改Docker配置文件后,重启Docker服务使其生效: ``` sudo systemctl restart docker ``` 至此,在CentOS 7中安装和配置Docker私有仓库。您可以通过使用Docker命令将镜像推送到私有仓库,并在其他主机上使用仓库进行拉取和部署镜像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值