docker compose で Private Registryとフロントエンドを起動する
docker compose で dockerのprivate registryとフロントエンドを起動する方法です。
準備
dockerの動くLinuxマシンにdockerをインストールしておきます(dockerのインストール方法)。
説明ではサンプルとしてdokcerのhello-worldイメージを使用します。
docker registryの起動
# docker-compose.ymlを置くディレクトリを作る
$ cd ~
$ mkdir private-regstry
$ cd private-regstry
$ mkdir storage
$ vim docker-compose.yml
## 下記を記述して保存して閉じる
version: "3"
services:
registry:
image: registry
ports:
- 5000:5000
volumes:
- ./storage:/var/lib/registry
web:
image: konradkleine/docker-registry-frontend:v2
ports:
- 8080:80
environment:
- ENV_DOCKER_REGISTRY_HOST=host.docker.internal
- ENV_DOCKER_REGISTRY_PORT=5000
extra_hosts:
- "host.docker.internal:host-gateway"
# private registry とフロントエンドを起動
$ docker compose up -d
タグをつけてpush 同じマシンから
docker registryが起動しているマシンでタグを付けてpushする場合はこちらです。
# タグをつける
$ docker tag hello-world localhost:5000/hello-world:v1.0.0
# private registry に push
$ docker push localhost:5000/hello-world:v1.0.0
タグをつけてpush 他のマシンから
下記はdocker registryが起動しているマシンと違うマシンでタグを付けてpushする方法です。docker registryが起動しているマシンのIPは192.168.1.100とします。
# /etc/docker/daemon.jsonに追記
$ sudo vim /etc/docker/daemon.json
## 下記を追記
{
"insecure-registries" : ["192.168.1.100:5000"]
}
$ sudo systemctl restart docker
# タグをつける
$ docker tag hello-world 192.168.1.100:5000/hello-world:v1.0.0
# private registry に push
$ docker push 192.168.1.100:5000/hello-world:v1.0.0
webのフロント画面
http://localhost:8080 または http://192.168.1.100:8080 で見られます。ブラウザでアクセスして"Browse Repositories"をクリックするとpushしたhello-worldイメージが表示されます。
private regisryとフロントエンドをストップする
$ cd ~/private-registry
$ docker compose down
参考ページ