CI/CDやDevOps、アジャイルな開発などを実践する際に、技術面ではコンテナを活用することが多くなってきました。一方で、なかなかコンテナを扱う機会が無い、という人も多いように思います。そんな方には、まずはコンテナを動かしてみよう、ということでDocker Desktopをお勧めしています。
これまで、何度かセミナーなどでDocker Desktopを紹介してきています。動画で見たい、資料が見たい、という方は以下のリンクからご覧ください。このエントリーでは、セミナーや資料の補足を書いておこうと思いますので、併せてお読みください。
結局コンテナとは何なのか
コンテナは、技術的に見れば単なるプロセスです。ただし、通常のプロセスは1つのカーネル上で並列して動作し、ファイルシステムなどをプロセス間で共有します。一方コンテナは、それぞれのコンテナ(≒プロセス)が隔離され、たとえばファイルシステムはコンテナ専用のファイルシステムを持ちます。そのため、各コンテナは「仮想的に」別々のシステムのように動作します。
コンテナが隔離されて何が嬉しいの?
コンテナのメリットはいろいろありますが、一般的にあまり言及されていない運用面について挙げておきます。
これまでのシステムでも、Webアプリケーションサーバーやデータベースサーバーなどを別々のシステムとして動かすことが多々ありました。システムの環境が共有されることで引き起こされる不具合を回避するためです。たとえば、あるアプリケーションのために行ったライブラリなどのアップデートが、その他のソフトウェアの動作に影響を及ぼし、不具合が起きることを防ぐためです。
コンテナは、それぞれのコンテナが別々の環境を構成することができるので、これまで物理マシンや仮想マシンで別々に運用していたのと同じことが各コンテナ毎で行える点が一つのメリットとして挙げられます。
なんでDocker Desktop?
コンテナを動かすだけであれば色々な方法がありますが、Docker Desktopは始めやすいいくつかのメリットがあります。
Windows、macOS、Linuxで動作する
コンテナ動作環境を仮想マシンとして用意するのでデスクトップ環境を汚さない
インストールするだけで動かせる
GUIのダッシュボードが状態確認やちょっとした作業に便利
動かす時のポイント
デフォルトでコンテナ用仮想マシンにかなりのメモリが割り当てられていますが、ちょっと動かすだけならそこまでは要りません。自分の搭載メモリ量と相談の上、適当なサイズに調整してみてください。設定はDocker Desktopのダッシュボードの設定から行えます。最低1GBの割り当てになります。
Kubernetesも動かせるの?
Docker Desktopのダッシュボードの設定の中にKubernetesを動かす項目があります。ここをいじるとKubernetesが動作します。しかし、GUIから何かできるわけではありません。ギリギリ、minikubeなどKubernetesをシンプルに動作させるための仕組みと同じ程度に簡単セットアップができますよ、という程度です。そこから先は良くも悪くも素のKubernetesなので、頑張ってください。もしかしたら以下の資料が参考になるかも知れません。
参考情報
その他、この辺の情報も一緒に読んでみてもらえるとよいかと思います。