概要
harboar は VMware がオープンソースで開発している docker レジストリです
今回は CentOS 上にインストールし簡単な push まで行ってみました
環境
- CentOS 7.3.1611
- harbor 0.5.0
- docker 17.03
- docker-compose 1.9.0
事前準備
docker と docker-compose は事前にインストールしておいてください
harbor のインストール
- wget ‘https://github.com/vmware/harbor/releases/download/0.5.0/harbor-online-installer-0.5.0.tgz’
- tar zvxf harbor-online-installer-0.5.0.tgz
- cd harbor
- vim harbor.cfg
hostname = 192.168.100.101
この IP は作業している CentOS マシンの IP を入力してください
localhost と 127.0.0.1 のローカル用のホスト名、IP では動作しないので注意してください
他にも email や ladp, https などの設定ができるので必要であれば設定してください
- ./install.sh
でインストールします
一応全ログを記載しておきます
[Step 0]: checking installation environment ...
Note: docker version: 17.03.0
Note: docker-compose version: 1.9.0
[Step 1]: preparing environment ...
generated and saved secret key
Generated configuration file: ./common/config/nginx/nginx.conf
Generated configuration file: ./common/config/ui/env
Generated configuration file: ./common/config/ui/app.conf
Generated configuration file: ./common/config/registry/config.yml
Generated configuration file: ./common/config/db/env
Generated configuration file: ./common/config/jobservice/env
Generated configuration file: ./common/config/jobservice/app.conf
Generated configuration file: ./common/config/ui/private_key.pem
Generated configuration file: ./common/config/registry/root.crt
The configuration files are ready, please use docker-compose to start the service.
[Step 2]: checking existing instance of Harbor ...
[Step 3]: starting Harbor ...
Creating network "harbor_default" with the default driver
Pulling log (vmware/harbor-log:0.5.0)...
0.5.0: Pulling from vmware/harbor-log
93b3dcee11d6: Pull complete
5c14e4bdfb0b: Pull complete
e4dee8a574ca: Pull complete
64897311fadc: Pull complete
9b18f82d0181: Pull complete
Digest: sha256:81db268fa32ed35274f88f0e9f6e8c8fe36fdfe3247a7c75cef3d526814755ad
Status: Downloaded newer image for vmware/harbor-log:0.5.0
Pulling ui (vmware/harbor-ui:0.5.0)...
0.5.0: Pulling from vmware/harbor-ui
93b3dcee11d6: Already exists
a91de92f52f5: Pull complete
341612b46e3b: Pull complete
c1a53f812656: Pull complete
9a9aa413559a: Pull complete
e1b377650dfc: Pull complete
be5517028022: Pull complete
726f4e0b4799: Pull complete
08639f4ec97a: Pull complete
Digest: sha256:677776af19c774f665565486ef0ec3ab37e55c6738a471942e3ea841b3e1821c
Status: Downloaded newer image for vmware/harbor-ui:0.5.0
Pulling mysql (vmware/harbor-db:0.5.0)...
0.5.0: Pulling from vmware/harbor-db
43c265008fae: Pull complete
d7abd54d3b34: Pull complete
92b527830a1b: Pull complete
44839710d611: Pull complete
3828a16bed5c: Pull complete
fb91763f6b4e: Pull complete
892bfb27c685: Pull complete
02874ec7a2dc: Pull complete
861c1296cc0d: Pull complete
d611998d5598: Pull complete
09037dc5a941: Pull complete
448973dd2180: Pull complete
c0a51ede01de: Pull complete
54c4b53ba168: Pull complete
Digest: sha256:4bc45566b8aab9288e76ac8a36e604aecf05ba9b25e22f5a9cd5e9686978b78b
Status: Downloaded newer image for vmware/harbor-db:0.5.0
Pulling jobservice (vmware/harbor-jobservice:0.5.0)...
0.5.0: Pulling from vmware/harbor-jobservice
93b3dcee11d6: Already exists
a91de92f52f5: Already exists
cdeb4de41efe: Pull complete
ce3594a70659: Pull complete
Digest: sha256:9c2d927f6e59fafcc930a5f738d713bde7d101cecd4e110a570a7b499d69ff68
Status: Downloaded newer image for vmware/harbor-jobservice:0.5.0
Pulling registry (library/registry:2.5.0)...
2.5.0: Pulling from library/registry
e110a4a17941: Pull complete
2ee5ed28ffa7: Pull complete
d1562c23a8aa: Pull complete
06ba8e23299f: Pull complete
802d2a9c64e8: Pull complete
Digest: sha256:1b68f0d54837c356e353efb04472bc0c9a60ae1c8178c9ce076b01d2930bcc5d
Status: Downloaded newer image for registry:2.5.0
Pulling proxy (nginx:1.11.5)...
1.11.5: Pulling from library/nginx
386a066cd84a: Pull complete
7bdb4b002d7f: Pull complete
49b006ddea70: Pull complete
Digest: sha256:9038d5645fa5fcca445d12e1b8979c87f46ca42cfb17beb1e5e093785991a639
Status: Downloaded newer image for nginx:1.11.5
Creating harbor-log
Creating harbor-db
Creating registry
Creating harbor-ui
Creating nginx
Creating harbor-jobservice
✔ ----Harbor has been installed and started successfully.----
Now you should be able to visit the admin portal at http://192.168.100.101.
For more details, please visit https://github.com/vmware/harbor .
見て分かる通り harbor はコンテナで動作します
解凍したフォルダ内に docker-compose.yml ファイルも存在しています
完了したら harbor 用のコンテナを確認してみましょう
- docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
405c46a5cf48 vmware/harbor-jobservice:0.5.0 "/harbor/harbor_jo..." 13 minutes ago Up 13 minutes harbor-jobservice
c1e65c00f50d nginx:1.11.5 "nginx -g 'daemon ..." 13 minutes ago Up 13 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp nginx
c62583b09c91 vmware/harbor-ui:0.5.0 "/harbor/harbor_ui" 13 minutes ago Up 13 minutes harbor-ui
8e5a36f0268d library/registry:2.5.0 "/entrypoint.sh se..." 13 minutes ago Up 13 minutes 5000/tcp registry
667a6045716a vmware/harbor-db:0.5.0 "docker-entrypoint..." 13 minutes ago Up 13 minutes 3306/tcp harbor-db
24e21ba0af2c vmware/harbor-log:0.5.0 "/bin/sh -c 'crond..." 13 minutes ago Up 13 minutes 0.0.0.0:1514->514/tcp harbor-log
こんな感じで起動していれば OK です
試してみる、その前に
dockerd のオプションに --insecure-registry
というオプションがあります
これに今回構築した harbor の IP を追加する必要があります
そうしないと Error response from daemon: Get https://192.168.100.101/v1/users/: dial tcp 192.168.100.101:443: getsockopt: connection refused
と言われて怒られます
- vim /etc/systemd/system/docker.service.d/docker.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --insecure-registry 192.168.100.101
- systemctl daemon-reload
- systemctl restart docker
で registry が http でも試すことができます
試してみる
- docker login 192.168.100.101
Username: admin
Password: Harbar12345
Login Succeeded
でログインできます
パスワードはデフォルトです
この設定は harbor.cfg で変更することができます
では実際に registry にイメージを登録してみます
- docker pull alpine
- docker tag alpine 192.168.100.101/library/alpine
- docker push 192.168.100.101/library/alpine
でイメージを登録することができます
harbor にはデフォルトで library というプロジェクトが用意されているのでそれを使っています
それ以外のプロジェクト名をデフォルトで指定すると push できません
UI で確認してみる
harbor にはデフォルトで UI がついています
ブラウザで http://192.168.100.101 にアクセスしてみましょう
ユーザ名とパスワードは先程のデフォルトのものになります
するとプロジェクト「library」があることが確認できると思います
選択すると先程 push した alpine のイメージがあると思います
別のプロジェクトに対して push したい場合はここでプロジェクトを作成後 push してください
最後に
VMware の harbor を試してみました
実は内部的には dockerhub で公開されている docker 純正の registry を使っています
それに UI やログ置き場、ジョブワーカー、ユーザ管理、メール送信などの機能がデフォルトで用意されている感じになります
今回は簡単に試しただけなので、いろいろと触ったら Tips 的なのも別途紹介したいと思います
0 件のコメント:
コメントを投稿