これはそろそろDockerを使えるようになりたい筆者の試行錯誤の軌跡です。
VMからコンテナへ
現在、完全に自分だけのためではありますが、複数サービス運用のためローカルマシンのVMで作ったサーバー3台を運用しています。
- Deploy:コンテンツ配信用
- Resource:プライベートクラウドストレージ
- Develop:ソースコード管理
Deployで配信するコンテンツには以下の種類があります。
- 通常通り
/var/www/html
配下にファイルを配置し配信するもの(以下、web root) - 音楽や動画を配信するメディアストリーミング
- Djangoアプリケーション
- Node.jsアプリケーション
それらのうち、DjangoアプリケーションとNode.jsアプリケーションはバーチャルホストとしてサブドメインを割り当てています。
上記アプリケーションに加えて、Resourceのowncloud、Developのgitlabも、バーチャルホストとしてサブドメインでDeployから配信しています。
これらをDockerに移植していこうという計画を立てます。
理由は単純で、そろそろDockerを使えるようになりたいからです。
探り探りではありますが、少しずつ進めていきたいので、その軌跡を残そうという記事です。
以下のような完成形をイメージしています。
(コンテナ初心者です。構成の甘さとかベストプラクティスとかあればご教示ください。)
よくある「プロセス単位でコンテナを作成」っていう説明がなかなか理解できなかったのですが、
具体的にどう切り分ければコンテナとして扱いやすいかを考えると、すんなり理解できました。
とりあえずDockerを準備
一気にやってしまう時間を確保するのが難しいので、少しずつ進められるようにとりあえずDockerを使えるようにし、VMと共存させます。
Docker起動に必要なHyper-VとVirtualBoxが共存できない問題がありましたが、VirtualBoxを6.1系にアップデートすると共存できました。
以下のような構成が当面の目標です。
画像のようにnginxのコンテナを起動し、VMにリバースプロキシするよう設定し、http系のアクセスがVMからコンテナに向くよう変更しました。
が、つながりませんでした。
ブラウザにはERR_SSL_PROTOCOL_ERROR
と表示されており、コンテナのnginxは文字化けしていて解読できませんでした。
移行計画、不穏な幕開けです。