- Docker私有仓库的搭建
搭建Docker私有仓库的步骤如下:
-
安装Docker:在搭建Docker私有仓库之前,必须先在主机上安装Docker。可以到Docker官方网站下载安装包并安装。
-
创建Docker私有仓库:使用以下命令在主机上创建Docker私有仓库。
$ docker run -d -p 5000:5000 --restart=always --name registry registry:2
上述命令将会拉取Docker官方的registry镜像,并在主机上运行一个名为registry的容器。容器将监听主机的5000端口,并在私有仓库中保存所有镜像。
- 配置Docker客户端:在主机上使用以下命令修改Docker客户端的配置。这样客户端才能够使用私有仓库。
$ sudo vi /etc/docker/daemon.json
在打开的文件中添加以下内容。
{
"insecure-registries": ["myregistrydomain.com:5000"]
}
其中myregistrydomain.com代表私有仓库所在的主机名。
- 重新加载Docker配置:使用以下命令重新加载Docker客户端的配置。
$ sudo systemctl daemon-reload
- 重启Docker服务:使用以下命令重启Docker服务。
$ sudo systemctl restart docker
- 推送镜像到私有仓库:使用以下命令将镜像推送到私有仓库。
$ docker tag nginx myregistrydomain.com:5000/my-nginx
$ docker push myregistrydomain.com:5000/my-nginx
注意,以上命令中的nginx为你要推送的镜像名称,myregistrydomain.com为私有仓库所在的主机名,5000为私有仓库的端口号,my-nginx为你要推送镜像的名称。
- 界面化管理私有仓库
可以使用Portus实现私有仓库的界面化管理。Portus是一个开源的Docker注册服务器,可以通过其Web界面管理私有仓库。以下是Portus的使用步骤。
- 安装Portus:在主机上安装Portus。可以通过以下命令完成Portus的安装。
$ docker run -d -p 3000:3000 --name portus \
-v /opt/portus/config:/srv/app/config \
-v /var/run/docker.sock:/var/run/docker.sock \
--restart=always \
registry.opensuse.org/portus/portus:2.3
上述命令将会拉取Portus镜像,并在主机上运行一个名为portus的容器。容器将监听主机的3000端口,并可以通过Web界面管理私有仓库。
-
配置Portus:使用浏览器访问主机的3000端口,进入Portus的Web界面。在界面中使用管理员账号登录。然后点击“Admin”按钮,进入管理员设置界面。在其中设置私有仓库的地址和证书信息。以及设置当前管理员的个人信息和权限。
-
管理私有仓库:使用浏览器访问主机的3000端口,进入Portus的Web界面。在界面中可以对私有仓库进行如下操作。
-
查看仓库中的镜像
- 搜索仓库中的镜像
- 查看每个镜像的详情信息
- 删除不需要的镜像
- 添加新的仓库用户
- 限制某个用户对某个镜像的访问权限
示例1:
搭建Docker私有仓库和使用Portus界面化管理私有仓库的完整攻略已经在以上给出。
示例2:
假设需要在Docker私有仓库中保存一个名为myweb的Web应用镜像,并且该镜像需要启用SSL证书认证。过程如下:
- 创建Web应用镜像:首先在本地计算机上开发一个名为myweb的Web应用程序。然后使用以下命令将该应用程序打成Docker镜像,并上传到私有仓库。
$ docker tag myweb myregistrydomain.com:5000/myweb
$ docker push myregistrydomain.com:5000/myweb
- 为私有仓库创建证书:使用以下命令在本地计算机上创建私有仓库所需的SSL证书。
$ openssl req -newkey rsa:4096 -nodes -sha256 -keyout domain.key -x509 -days 365 -out domain.crt
之后会提示输入一些证书相关的信息,直接全部回车即可。最终会在当前目录下创建一个名为domain.key和一个名为domain.crt的证书文件。
- 为私有仓库添加证书:将之前创建的domain.crt证书文件复制到私有仓库所在的主机上,并使用以下命令添加证书到Docker。
$ mkdir -p /etc/docker/certs.d/myregistrydomain.com:5000/
$ cp domain.crt /etc/docker/certs.d/myregistrydomain.com:5000/ca.crt
- 重启Docker服务:使用以下命令重启Docker服务以使之重新加载证书。
$ sudo systemctl restart docker
- 测试Docker私有仓库:使用以下命令测试私有仓库是否可以使用SSL证书正确读取镜像。
$ docker pull myregistrydomain.com:5000/myweb
如果一切正常,则会从私有仓库中成功拉取镜像。
- 配置Portus使用SSL证书:使用浏览器访问私有仓库所在主机的3000端口,进入Portus的Web界面。在管理员设置中上传之前创建的domain.crt证书文件。这样Portus就可以使用SSL证书安全地连接到私有仓库。
在此基础上,就可以使用Portus管理私有仓库中的myweb镜像了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker私有仓库的搭建和界面化管理详解 - Python技术站