LoginSignup
0
0

Docker Registry

Last updated at Posted at 2023-10-07

[!NOTE]

  • Docker Registry には API バージョン 12 があります。
  • バージョン 2 が推奨らしいのです。
  • 今のところ、push したコンテナを削除できないこと以外は、期待通りの動きができていると思います。

docker-compose.yml の準備

docker-compose.yml
version: "3"
services:

    frontend:
        #image: konradkleine/docker-registry-frontend:v2
        image:  ekazakov/docker-registry-frontend
        container_name: frontend
        hostname: frontend
        environment:
            ENV_DOCKER_REGISTRY_HOST: backend
            ENV_DOCKER_REGISTRY_PORT: 5000
        ports:
            - 5080:80

    backend:
        image: registry:2
        container_name: backend
        hostname: backend
        restart: always
        ports:
            - "5000:5000"
        #volumes:
        #    - ./var.lib.registry:/var/lib/registry
        environment:
            REGISTRY_STORAGE_DELETE_ENABLED: 'True'
Docker Registry 起動コマンド
docker compose up -d --build

ブラウザで http://localhost:5080/ を参照すると、Docker Registry に登録したコンテナを参照できます。削除ボタンも表示されて、押下もできるのですが、消えません。。。
とりあえず、ブラウザ操作では削除できなさそうなので、その内、Docker Registry API を調べて、API 手動実行で削除する方法を模索しようと思っています。

Docker Registry の使い方

とりあえず利用してみる

  1. 公開されているコンテナイメージを取得する

    docker pull hello-world
    
  2. プライベートリポジトリ向けのタグを打つ

    docker tag hello-world localhost:5000/hello-world-local:1
    
  3. プライベートポジトリに push する

    # プライベートリポジトリにコンテナイメージを登録
    docker push localhost:5000/hello-world-local:1
    
    # ディスク上のコンテナイメージを削除
    docker rmi localhost:5000/hello-world-local:1
    
  4. プライベートリポジトリ登録コンテナの実行

    docker run localhost:5000/hello-world-local:1
    

Dockerfile で作ったコンテナで利用する

ほとんど Docker Hub の方法と同じです。

  1. Dockerfile の用意 (内容は適当です)

    # Base Image
    FROM debian:latest
    
    # 必要なパッケージのインストール
    RUN apt-get update \
        && DEBIAN_FRONTEND=noninteractive apt-get install -y \
            locales nginx  \
        && apt-get autoremove -y \
        && apt-get autoclean -y \
        && apt-get clean -y
    
    # localesの設定
    RUN localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
    ENV LANG="ja_JP.UTF-8" \
        LANGUAGE="ja_JP:ja" \
        LC_ALL="ja_JP.UTF-8"
    
    CMD ["nginx", "-g", "daemon off;"]
    
  2. コンテナをビルドする

    docker image build -t localhost:5000/nginx .
    
  3. プライベートリポジトリに登録する

    docker push localhost:5000/nginx
    
  4. プライベートリポジトリ登録コンテナの実行

    docker container run -d --rm -p 80:80 localhost:5000/nginx
    

お世話になったサイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0