++++++++++++++++++++
# 9. Docker构建私有registry (默认端口5000)
## 9.1 启动registry
mkdir -p /opt/registry
docker run -d -p 5000:5000 --restart=always --name registry -v /opt/registry:/var/lib/registry registry
-v /opt/registry:/var/lib/registry
## 将镜像数据,持久化到本地目录。
--restart=always ## 只要docker 服务启动,就启动这个容器。
## 9.2 修改配置文件,让本地的docker 服务,知道有一个镜像服务器192.168.20.211
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://n8i4h3lp.mirror.aliyuncs.com"],
"insecure-registries":["192.168.20.211:5000"]
}
### 说明:"registry-mirrors": ["https://https://n8i4h3lp.mirror.aliyuncs.com"] ##镜像加速器
"registry-mirrors": ["https://uoggbpok.mirror.aliyuncs.com"]
systemctl restart docker
## 9.3 制作本地镜像并push(推)到 192.168.20.211
镜像格式必须要是这样的:192.168.20.211:5000/dfsc/nginx:v1
镜像服务器地址:5000/项目名称/镜像名称:v1
先将本地镜像nginx:latest 重新tag
docker images
docker tag nginx:latest 192.168.20.211:5000/dfsc/nginx:v1
docker push 192.168.20.211:5000/dfsc/nginx:v1
## 9.4 异地进行pull镜像
重新准备一台 server ,安装docker ,在这台server 上 pull 镜像
修改配置文件:
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://uoggbpok.mirror.aliyuncs.com"],
"insecure-registries":["192.168.20.211:5000"]
}
保存退出,重启docker 。 systemctl restart docker
再进行pull 镜像:
docker pull 192.168.20.211:5000/dfsc/nginx:v1
## 9.5 本地仓库加安全认证
生成密码:
yum install httpd-tools -y
mkdir /opt/registry-auth/ -p ##生成密钥目录
htpasswd -Bbn dfsc abc.com123 > /opt/registry-auth/htpasswd
## 9.6 重新启动带有秘钥功能的registry容器
docker rm -f `docker ps -qa` ##删除所有容器,重新启一个容器。
docker run -d -p 5000:5000 -v /opt/registry-auth/:/auth/
-v /opt/registry:/var/lib/registry --name register-auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry
## 9.7 push镜像,需要进行login,测试密码验证功能。
docker push 192.168.20.211:5000/dfsc/centos69:v1
[root@docker ~]# docker login 192.168.20.211:5000
Username: dfsc
Password:
docker push 192.168.20.211:5000/dfsc/centos69:v1
在另一台server 上进行pull 192.168.20.211:5000/dfsc/centos69:v1
## 10. 重启docker服务,容器全部退出的解决办法
vim /etc/docker/daemon.json
在{ } 里面的最后添加:
"live-restore": true ##当你的docker 服务重启时,容器也自动重启。
## 11. habor实现图形化register
修改hosts文件
vim /etc/hosts
mkdir -p /opt/harbor
1. 安装
第一步: 安装docker和docker-compose
yum install -y docker-compose
第二步: 下载harbor-offline-installer-vxxx.tgz(离线版)
下载:(online 在线版,容量小,安装时候从网络下载,offline是离线版,比较大)
cd /opt
https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-online-installer-v1.8.1.tgz
https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.1.tgz
也可以用IE下载,再上传。
第三步: 上传到/opt,并解压,修改harbor.yml配置文件
tar zxf harbor-online-installer-v1.8.1.tgz
vim /opt/harbor/harbor.yml
或者改为IP
harbor.yml 说明:
data_volume: /data #存储harbor数据的位置,安装的时候会自动创建
harbor_admin_password: Harbor12345 #管理员的初始密码,默认用户名/密码为admin/Harbor12345
database:
password: root123 #用于db_auth的PostgreSQL数据库的root密码
jobservice:
max_job_workers: 10 #最大同时工作者数
log:
level: info #日志等级,debug, info, warning, error, fatal
rotate_count: 50
rotate_size: 200M
location: /var/log/harbor #存储日志的目录
http:
port: 80 #http的端口号
https: #如果启用了公证,则必须设置为https
port: 443 #https的端口号
certificate: /your/certificate/path #SSL证书的路径,仅在协议设置为https时应用
private_key: /your/private/key/path #SSL密钥的路径,仅在协议设置为https时应用
第四步: 执行prepare 脚本 (离线版,也可以执行这步。)
cd harbor/
./prepare #这一步,docker 会去网上下载goharbor/prepare 镜像。
第五步:运行安装脚本
cd /opt/harbor
./install.sh
默认用户名/密码为admin/Harbor12345
++++++++++++++++++++++++++++++++++++++
2、使用方法
往harbor 推送镜像:
修改daemon.json
vim /etc/docker/daemon.json
修改节点的docker配置文件
{
"registry-mirrors": ["https://uoggbpok.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.20.211:5000","192.168.20.211"],
"live-restore": true
}
systemctl restart docker
重启 docker 服务
3. 在habor中添加项目
往项目里面推送镜像:(帮助)
4. 制作镜像并上传habor
先给镜像打标签:
docker tag centos:6.9 192.168.20.211/dfsc001/centos6.9:v1
登录harbor
docker login 192.168.20.211
push 打标的镜像到harbor
docker push 192.168.20.211/dfsc001/centos6.9:v1
5. 在节点中pull habor中的镜像
docker pull 192.168.20.211/dfsc001/centos6.9:v1
注意: 其他节点要去pull 192.168.20.211 上面的镜像,也需要修改docker 的配置文件 daemon.json
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://uoggbpok.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.20.211:5000","192.168.20.211"],
"live-restore": true
}
保存,重启docker 服务。