最近、Dockerにはまっています。
環境がサクッと整うし、汚さないしで最高です。
もうこれからは、自分案件はできるだけDockerで構築しようと思っています。
スケールのことや冗長化のことなど、これまでいくつかのサービスを運営していて、漫然と感じていた不安が解消しました。
(まだスケールするようなサービスを作ったことはないけど)
これからDockerをガシガシ使っていくのに際して、プライベートレジストリが必要だと感じましたので、さっそく作ってみました。作るといっても、これもDockerでできるのでとても簡単です。
サーバには、最近お気に入りのLinodeのVPSを使いました。
最小構成のVPSが1ヵ月5ドルで借りられます。初期費用なし&時間課金なので、必要なときに必要なだけ立てて、不要になったらサクッと削除できるところが気に入ってます。コンソールパネルも使いやすいです。
コンソールパネルから最小構成のマシンでCoreOSをデプロイして、Docker Composeをインストールしました。
アクセス制限については、自分が使うだけなのでベーシック認証で十分かなと。
尚、認証を使うときは、TLSが必須みたいです。
まずは、すべてのデータを入れるディレクトリを作ります。今回は「registry」としました。
mkdir registry cd registry
パスワードファイルを以下のコマンドで作ります。
《user_name》と《password》には、ログインする際のユーザー名とパスワードを指定します。
mkdir auth docker run --entrypoint htpasswd registry:2 -Bbn 《user_name》 《password》 > auth/htpasswd
docker-compose.ymlを以下のように作ります。
repo.your-domain.com や mail@your-domain.com は、実環境に応じて書き換えてください。
Let’s Encryptを使いますので、Emailは実在するアドレスを正しく入力する必要があります。
version: '2' services: registry: restart: always image: registry:2 ports: - 5000:5000 environment: REGISTRY_HTTP_TLS_CERTIFICATE: /certs/live/repo.your-domain.com/fullchain.pem REGISTRY_HTTP_TLS_KEY: /certs/live/repo.your-domain.com/privkey.pem REGISTRY_AUTH: htpasswd REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm volumes: - ./registry:/var/lib/registry - ./letsencrypt/:/certs - ./auth:/auth lets-nginx: image: smashwilson/lets-nginx restart: always volumes: - ./cache:/cache - ./letsencrypt:/etc/letsencrypt links: - registry environment: EMAIL: "mail@your-domain.com" DOMAIN: "repo.your-domain.com" UPSTREAM: "registry:80" ports: - "80:80" - "444:443"
あとは、docker-compose up で完了です。
docker-compose up
初回の起動に、Let’s Encript の設定が行われますので、数分待ちましょう。
Let’s Encryptの設定完了時に表示されるいつものメッセージが表示されたら準備完了です。
他のマシンからログインのテストをしてみましょう。
docker login repo.your-domain.com:5000
無事にログインできたら完成です!
ホームページの制作(デザイン・コーディング・プログラミング)に加え、ネットショップの販売促進に関するアドバイスも致します。 20年以上に渡って実際にネットショップを運営した経験を生かし、聞きかじりではない実績を伴ったノウハウを、自分の言葉でお伝えいたします。 プログラミングの経験は30年以上。HTML、CSS、JavaScript、TypeScript、Vue、NuxtJS、Node.js、MySQL、MongoDB、Elasticsearch、WordPress、PHP、Docker、Electronなど、幅広く対応します。
コメント