完全に分離された環境の運用
開発環境、本番環境のように完全にネットワークが分離されている環境や、インターネットに接続されていない環境がある場合どのように運用するのがいいのかということを考えた。
ポイントとしては以下2点
- プライベートなDocker Registryの構築
- Docker imageのデプロイ:開発→本番 開発環境で作成したイメージの本番へのデプロイ方法(ネットワークは物理的に分断)
プライベートなDocker Registryの構築
こちらはDocker本家ページに記載の通り、ただし 本番運用するにはしっかりとセキュリティ関連(証明書など)は検討する必要あり。
Docker imageのデプロイ:開発→本番
完全に開発環境、本番環境間でネットワークが分離されている場合の話かつプライベートリポジトリかつ、本番環境はインターネット接続なしのケース。
開発:DockerHubからダウンロード、自作のDocker Image をprivate registoryに登録
開発→本番へは、
開発: docker export or save で -o tar ファイルへ。
これをハンドキャリーで本番環境へ移動
本番:作業ホストで開発環境からエクスポートしたイメージをDocker imageとして復元
本番:ホストのdocker image へ登録されるため、private registory へpush
さらに調べておくべきこと
今回調べたのはシンプルにDockerだけのケースなのでこれらをkubernetes, openshift, Rancherといったオーケストレータから使う場合どのような運用が適するのかは見定める必要がありそう。