- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Docker/プライベートレジストリの構築 へ行く。
- 1 (2020-03-14 (土) 21:18:03)
- 2 (2020-03-15 (日) 00:00:09)
- 3 (2020-03-15 (日) 12:26:50)
- 4 (2020-03-15 (日) 15:12:38)
- 5 (2020-03-17 (火) 01:22:16)
コンテナのプライベートリポジトリを作る。
Dockerのインストール †
最初にdockerのインストールが必要。
CentOSの場合は以下のとおり。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker
コンテナが実行できるか確認。
sudo docker run hello-world
参考
レジストリのコンテナ †
dockerレジストリ用のコンテナでレポジトリを作成できる。
sudo docker run --restart=always -d -e REGISTRY_HTTP_ADDR=0.0.0.0:5000 -p 5000:5000 --name registry registry:2
docker hubから、alpineのコンテナイメージを落としてきて、ローカルレジストリにpushしてみる。
$ sudo docker pull alpine:3.8.4 3.8.4: Pulling from library/alpine Digest: sha256:04696b491e0cc3c58a75bace8941c14c924b9f313b03ce5029ebbc040ed9dcd9 Status: Image is up to date for alpine:3.8.4 docker.io/library/alpine:3.8.4 [root@localhost ~]# docker image tag alpine:3.8.4 localhost:5000/local-alpine [root@localhost ~]# docker push localhost:5000/local-alpine The push refers to repository [localhost:5000/local-alpine] d9ff549177a9: Pushed latest: digest: sha256:899a03e9816e5283edba63d71ea528cd83576b28a7586cf617ce78af5526f209 size: 528
コンテナイメージをダウンロードできているようである。
リモートマシンからのダウンロード †
リポジトリはセキュアな環境である必要がある。
ここでは簡単なテストのため、インセキュアな環境で試してみる。
docker ホストマシン上で以下のように設定する。
daemon.json
というファイルを作成する。
[root@localhost docker]# cat /etc/docker/daemon.json { "insecure-registries" : ["<ホストマシンのIP>:5000"] }
別のクライアントマシンからイメージをpullしてみる。
ここでは、vagrantでクライアント用のVMを起動する。
また、今回はデーモンレスのコンテナエンジンであるpodmanを使ってみる。
vagrant init centos/7 vagrant up vagrant ssh sudo yum install -y podman
インセキュアなアクセスのため、クライアントマシン上で以下の編集をする。
# /etc/containers/registries.conf [registries.insecure] registries = ['<dockerホストのIP>:5000']
イメージをpullしてみる。podmanは、dockerと同様なコマンドライン指定で動作する。
[vagrant@localhost ~]$ sudo podman pull 192.168.56.101:5000/local-alpine Trying to pull 192.168.56.101:5000/local-alpine...Getting image source signatures Copying blob c87736221ed0 done Copying config dac7051149 done Writing manifest to image destination Storing signatures dac7051149965716b0acdcab16380b5f4ab6f2a1565c86ed5f651e954d1e615c [vagrant@localhost ~]$ sudo podman images REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.56.101:5000/local-alpine latest dac705114996 12 months ago 4.67 MB
コンテナを起動してみる。
[vagrant@localhost ~]$ sudo podman run -it --rm --name test-container local-alpine ash -c "hostname" 1b866c0253cc
コンテナイメージは、以下にダウンロードされていることを確認できる。
[root@localhost ~]# ls /var/lib/containers/storage/overlay/d9ff549177a94a413c425ffe14ae1cc0aa254bc9c7df781add08e7d2fba25d27/ diff empty link merged work
削除してみる。
[root@localhost ~]# sudo podman images REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.56.101:5000/local-alpine latest dac705114996 12 months ago 4.67 MB [root@localhost ~]# sudo podman rmi 192.168.56.101:5000/local-alpine dac7051149965716b0acdcab16380b5f4ab6f2a1565c86ed5f651e954d1e615c [root@localhost ~]# ls /var/lib/containers/storage/overlay/ backingFsBlockDev l