/

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

参考ページ