0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

https 通信可能なdocker registoryを作成する(オレオレ証明書)

Last updated at Posted at 2021-04-20

目的

https通信で通信可能なDocker registoryをDockerコンテナで作成する
cri-oやdockerからpullできることを確認する

作業手順概要

以下の作業を行いDocker registoryを立てる

  1. サーバーを構築するサーバのIPを固定
  2. オレオレ証明書を作成
  3. Dockerを使用してDocker registoryサーバ構築
  4. アクセスするPCに証明書を登録

作業詳細

1. サーバーを構築するサーバのIPを固定

やり方は省略しますが、サーバのIPは192.168.223.201とする

2. オレオレ証明書を作成

以下手順を行い証明を作成する

$ mkdir certs
$ openssl req -newkey rsa:2048 -nodes -keyout certs/domain.key -x509 -days 365 -out certs/domain.crt
Generating a RSA private key
..................+++++
.......+++++
writing new private key to 'certs/domain.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

3. Dockerを使用してDocker registoryサーバ構築

以下のコマンドを実行してDokcer registoryサーバーを構築する

docker run -d -p 443:443 \
   --rm --name registry \
   -v `pwd`/certs:/certs \
   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
   -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
   -v $(pwd)/regist:/var/lib/registry \
   -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
   registry:2

再起動後も有効にする場合は--rmオプションを外して--restart=alwaysのオプションを追加する

4. アクセスする機器に証明書を登録

  • dockerの場合
    レジストリサーバで使用したcerts/domain.crtをコピー後以下のコマンドを実行する
sudo mkdir -p /etc/docker/certs.d/192.168.223.201/
sudo cp domain.crt /etc/docker/certs.d/192.168.223.201/ca.crt
  • cri-oの場合
    レジストリサーバで使用したcerts/domain.crtをコピー後以下のコマンドを実行する
sudo mkdir -p /etc/containers/certs.d/192.168.223.201/
sudo cp domain.crt /etc/containers/certs.d/192.168.223.201/ca.crt

動作確認

dockerによるコンテナ登録

nginxをdockerhubからpullし、名前を変更してローカルのdocker registoryに登録する

docker pull nginx
docker tag nginx:latest 192.168.223.201/test/nginx:latest
docker push 192.168.223.201/test/nginx:latest

crulコマンドで動作確認数

以下のコマンドを実行する

curl https://192.168.223.201/v2/_catalog -k

先ほど登録した test/nginxが返ってくる

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?