docker 鏡像倉(cāng)庫(kù) Harbor 部署 跨數(shù)據(jù)復(fù)制 Harbor 是 Vmwar 公司開(kāi)源的 企業(yè)級(jí)的 Docker Registry 管理項(xiàng)目 它主要 提供 Dcoker Registry 管理UI,可基于角色訪問(wèn)控制, AD/LDAP 集成,日志審核等功能,完全的支持中文。 Harbor 的所有組件都在 Dcoker 中部署,所以 Harbor 可使用 Docker Compose 快速部署。
首先用 git 下載 源碼。 git clone https://github.com/vmware/harbor 下載完以后 進(jìn)入 harbor/Deploy 目錄 初始化配置, 配置文件為harbor.cfg
## Configuration file of Harbor # hostname 設(shè)置訪問(wèn)地址,支持IP,域名,主機(jī)名,禁止設(shè)置127.0.0.1 hostname = reg.mydomain.com # 訪問(wèn)協(xié)議,可設(shè)置 http,https ui_url_protocol = http # 郵件通知, 配置郵件通知。 email_server = smtp.mydomain.com email_server_port = 25 email_username = sample_admin@mydomain.com email_password = abc email_from = admin <sample_admin@mydomain.com> email_ssl = false # harbor WEB UI登陸使用的密碼 harbor_admin_password = Harbor12345 # 認(rèn)證方式,這里支持多種認(rèn)證方式,默認(rèn)是 db_auth ,既mysql數(shù)據(jù)庫(kù)存儲(chǔ)認(rèn)證。 # 這里還支持 ldap 以及 本地文件存儲(chǔ)方式。 auth_mode = db_auth # ldap 服務(wù)器訪問(wèn)地址。 ldap_url = ldaps://ldap.mydomain.com ldap_basedn = uid=%s,ou=people,dc=mydomain,dc=com # mysql root 賬戶的 密碼 db_password = root123 self_registration = on use_compressed_js = on max_job_workers = 3 verify_remote_cert = on customize_crt = on # 一些顯示的設(shè)置. crt_country = CN crt_state = State crt_location = CN crt_organization = organization crt_organizationalunit = organizational unit crt_commonname = example.com crt_email = example@example.com
Generated configuration file: ./config/ui/env Generated configuration file: ./config/ui/app.conf Generated configuration file: ./config/registry/config.yml Generated configuration file: ./config/db/env Generated configuration file: ./config/jobservice/env Clearing the configuration file: ./config/ui/private_key.pem Clearing the configuration file: ./config/registry/root.crt Generated configuration file: ./config/ui/private_key.pem Generated configuration file: ./config/registry/root.crt The configuration files are ready, please use docker-compose to start the service.
執(zhí)行完畢會(huì)生成一個(gè) docker-compose.yml 文件
配置 docker-compose.yml 文件中的 掛載目錄,啟動(dòng)方式等選項(xiàng)。
使用 pip install docker-compose 安裝 docker-compose 執(zhí)行 docker-compose up -d 構(gòu)建docker 容器 docker hub 下載鏡像實(shí)在是慢, Harbor 提供了一個(gè) 配置本地鏡像的配置: cd harbor/contrib/prebuild-install 運(yùn)行 update_compose.sh 配置本地的鏡像倉(cāng)庫(kù) 我們也可以配置 --registry-mirror= 來(lái)加速下載 使用 daocloud 提供的 mirror http://b438f72b.m.
[root@localhost Deploy]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE deploy_jobservice latest be822b50163d 43 minutes ago 804.6 MB deploy_mysql latest 5015ce56c9d5 49 minutes ago 328.8 MB deploy_ui latest 8596c12dbeba About an hour ago 808.1 MB deploy_log latest 6a74c6f52a2b About an hour ago 187.9 MB mysql 5.6 5e0f1b09e25e 2 days ago 328.8 MB ubuntu 14.04 0ccb13bf1954 12 days ago 187.9 MB golang 1.6.2 8ecba0e9bd48 5 weeks ago 753.5 MB nginx 1.9 c8c29d842c09 10 weeks ago 182.7 MB registry 2.4.0 8b162eee2794 3 months ago 171.1 MB
[root@localhost Deploy]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9704f42b05d5 deploy_jobservice "/go/bin/harbor_jobse" 4 minutes ago Up 4 minutes deploy_jobservice_1 0f8ff9b099d2 library/nginx:1.9 "nginx -g 'daemon off" 4 minutes ago Up 4 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp deploy_proxy_1 6b0159939874 deploy_ui "/go/bin/harbor_ui" 4 minutes ago Up 4 minutes 80/tcp deploy_ui_1 6f2298da0f67 deploy_mysql "docker-entrypoint.sh" 4 minutes ago Up 4 minutes 3306/tcp deploy_mysql_1 2dbca506e1ea library/registry:2.4.0 "/bin/registry serve " 4 minutes ago Up 4 minutes 5000/tcp, 0.0.0.0:5001->5001/tcp deploy_registry_1 fc5b1a201c72 deploy_log "/bin/sh -c 'cron && " 4 minutes ago Up 4 minutes 0.0.0.0:1514->514/tcp deploy_log_1
使用 賬號(hào) admin, 密碼為 配置文件中 harbor_admin_password = Harbor12345 的密碼 登陸
配置完畢以后,重啟 docker 使用 docker login userIP 登陸 Harbor [root@swarm-manager ~]#docker login 10.6.0.192 Username (admin): admin Password: Login Succeeded
查看 本地 images [root@swarm-manager ~]#docker images REPOSITORY TAG IMAGE ID CREATED SIZE mongodb latest 8af05a33e512 3 weeks ago 958.4 MB sath89/oracle-12c latest 7effebcd18ee 11 weeks ago 5.692 GB centos latest 778a53015523 4 months ago 196.7 MB
tag 修改 image 的名字. 格式為: userip/項(xiàng)目名/image名字:版本號(hào)
[root@swarm-manager ~]#docker tag mongodb 10.6.0.192/jicki/mongodb:1.0 [root@swarm-manager ~]#docker images REPOSITORY TAG IMAGE ID CREATED SIZE 10.6.0.192/jicki/mongodb 1.0 8af05a33e512 3 weeks ago 958.4 MB mongodb latest 8af05a33e512 3 weeks ago 958.4 MB sath89/oracle-12c latest 7effebcd18ee 11 weeks ago 5.692 GB centos latest 778a53015523 4 months ago 196.7 MB
[root@swarm-manager ~]#docker push 10.6.0.192/jicki/mongodb:1.0 The push refers to a repository [10.6.0.192/jicki/mongodb] c1e4cd91bcd4: Pushed d9a948970255: Pushed dd9b001e77ee: Pushed 625440e212f2: Pushed 75fa23acbccb: Pushed fd269370dcf4: Pushed 44e3199c59b3: Pushed db3474cfcfbc: Pushed 5f70bf18a086: Pushed 6a6c96337be1: Pushed 1.0: digest: sha256:c7d2e619d86089ffef373819a99df1390c4f2df4aeec9c1f7945c55d63edc670 size: 2824
登陸 WEB UI , 選擇項(xiàng)目, 項(xiàng)目名稱 jicki , 進(jìn)入 既可查看剛才上傳的 image
配置 2個(gè) Harbor IP 1 = 10.6.0.192 IP 2 = 10.6.0.196
進(jìn)入 WEB UI 選擇 項(xiàng)目, 選擇項(xiàng)目為 jicki , 然后選擇 復(fù)制 選項(xiàng)。
點(diǎn)擊 新增策略
創(chuàng)建完畢以后,我們可以看 復(fù)制策略 已經(jīng)有一欄。 復(fù)制任務(wù)里面 也已經(jīng)有一個(gè)任務(wù)。
我們可以看到, 鏡像已經(jīng)復(fù)制過(guò)來(lái)。而且連 日志操作 也會(huì)復(fù)制過(guò)來(lái)。
harbor 升級(jí)
一、 cd harbor/Deploy/ 執(zhí)行 docker-compose down 刪除原有的容器
二、 備份整個(gè)目錄 mv harbor/ /tm/harbor
三、 重新 下載新的源碼 git clone https://github.com/vmware/harbor
四、 cd harbor/migration/ 修改 migration.cfg 文件里面的 數(shù)據(jù)庫(kù) 賬號(hào)密碼 docker build -t migrate-tool .
五、 數(shù)據(jù)庫(kù)備份:
六、
七、 cd harbor/Deploy/ diff harbor.cfg /tmp/harbor/Deploy/harbor.cfg diff docker-compose.yaml /tmp/harbor/Deploy/docker-compose.yaml 如果修改了端口 必須更新 cd harbor/Deploy/config/nginx/nginx.conf 里面的端口
八、 cd /harbor/Deploy/ ./prepare
九、 cd /harbor/Deploy/ docker-compose up --build -d
十、
|
|
來(lái)自: 昵稱54185769 > 《待分類》