三步搭建私有Docker Registry(V2)服务器
网上方法千奇百怪,长篇大论看得心累,所以我希望三步之内解决这件事,那么开始吧。
你需要安装1.6.0以上的版本的 Docker 。
如果要使用域名绑定私有仓库,必须开启SSL。
生成下面文字即为成功:
克隆仓库。
编辑配置。
模板如下:
移动你的证书到 cert/ 目录。
备份一下原文件,使用https配置。
然后 vim nginx.conf ,要改的地方很少,如下:
没有问题的话已经运行起来了~~
现在你可以通过域名pull镜像了:
新建一个文件夹以便管理。
填写下面的内容到docker-compose.yml:
移动证书到自定义目录:
然后配置Nginx文件即可:
域名修改一下,复制粘贴即可。
现在你可以通过域名pull镜像了:
官方文档: Deploying a registry server
Docker从零搭建分布式服务器群
1、有2台服务器A和B,系统为centos7
2、有一个分布式的服务端需要部署在A和B上,其中A为主服务,B负责子服务
3、A和B需要在一个网络环境下能互相连接通信
4、A需要暴露2001和4001端口给外网客户端进行连接
5、2台机器都提供一个账户名为\"my\"的账号用于给对方ssh登录用
参考
我们使用 docker run 来创建容器并运行,此时容器在后台运行
我们使用 docker exec 来进入容器内的服务器
此时我们的已经登录进了A服务器,接下来在A服务器上我们进行服务安装通用的基础配置,目的是以后将A服务器作为镜像快速搭建B\\C\\D\\E服务器
查看 cd /etc/ssh 目录如果没有则需要执行下面安装:
配置 vi /etc/ssh/sshd_config ,将以下几项打开
配置完毕后我们启动sshd服务
然后检查sshd启动情况
A服务器的配置基本完成了,现在我们退出A服务器
在我们主机上进行下面的操作
由于我们接下来需要将A、B服务器放在一个网络环境下,这里我们先创建一个网络,命名为myNet
用我们制作的镜像重新创建一次服务器A和B,并且让他们加入我们之前创建的网络myNet内,并实现A服务器暴露2001和4001端口给外网也就是docker外的机器访问
现在我们已经创建好了A和B服务器,由于他们在myNet网络下,互相可以通过容器名来访问,不需要通过IP了,我们尝试从B服务器去ssh A服务器并且用my账号
现在我们A和B服务器就像在局域网一样,不用关心对方IP使用别名即可连接了,并且A对外暴露了端口2001和4001供外部连接
如何在服务器上部署docker
Debian / Ubuntu
sudo apt update
sudo apt install docker.io
sudo systemctl enable docker
sudo systemctl start docker
RedHat / CentOS
sudo yum update
sudo yum install docker.io
sudo systemctl enable docker
sudo systemctl start docker