<コンテナ>Podmanのススメ

コンテナ

はじめに

エンジニアの皆様は、様々な開発環境のインストールが必要だと思います。
とはいえ、会社のパソコンに多くのソフトウェアを入れたくなかったり、パソコンを変える際の引継ぎが面倒くさかったり、チーム全員で同一の環境を使うためにインストールマニュアル作成しないといけなかったり、となかなか課題が多いですよね。
未だに知らないエンジニアも多いですが、今の時代は環境を丸々コンテナ化し、持ち運ぶ時代です。
コンテナを使えば、上記の課題はすべて解決します。

実際に私は、企業のPCには以下のソフトウェアしか入れていません。

  • Visual Studio Code (エディタ)
  • Office系ソフトウェア (Word, PowerPoint, Excel)
  • Podman (コンテナ仮想化技術)

3つ目に挙げたPodmanの上で、設計に使用する描画ソフトや、コーディングに使用する環境等のコンテナを生成し、使用しています。

Podmanは、Dockerと互換性のあるコンテナ管理ツールで、Dockerと全く同じコマンドが使えます。
数年前に企業でのDocker Desktopの使用が有料化されたことにより、Podmanが最有力となりました。

Podmanを使用して、開発環境構築の敷居を下げましょう!

Podmanのインストール

Podmanを使用する場合、GUI操作を提供しているPodman Desktopがオススメです。
コマンドを覚えなくてもワンクリックでコンテナを生成したり、起動したりできます。
インストール手順としてオススメなサイトを紹介します。

Podman Desktopインストール手順<Windows向け>
目的本ページでは、以下の手順について説明します。WindowsにPodman DesktopをインストールするWindowsにPodmanをインストールするWindowsにWSL2をインストールするP

開発環境をコンテナ化するメリット

コンテナ技術は、あくまでも仮想化技術の一つであり、メリットの半分くらいは従来の仮想マシンの域を過ぎません。
しかしそれまでの仮想化技術と圧倒的に異なるのはその軽量さ、持ち運びやすさであり、その特徴を活かし、より優れたデプロイ・スケーリング・サーバ管理の仕組みが生み出されています。

サーバ側に馴染みがない開発者は自分には無関係だと思うかもしれませんが、そんなことはありません。
今や何でもコンテナ化すべきなのです。

どんな開発者も享受できるコンテナのメリットは、

  • イメージ化して、持ち運べること
    コンテナは自分が作った環境を丸々イメージという形に丸めて、持ち運びできます。
    つまりあなた専用の環境パッケージみたいなのができちゃうのです。
    これができると、パソコンを変えるときに前のパソコンで作ったイメージをロードするだけで同じ開発環境が整っちゃったり、チームメンバーと開発環境を共有したいときに、誰か一人が環境を作って、それをメンバーと共有するだけで簡単に全員が開発環境を構築することができます。
    もうなが~い開発環境マニュアルは必要ありません。
  • 有名なソフトウェアなら、既にイメージが世に公開されている
    ほとんどの有名なソフトウェアは、既に誰かがイメージ化してくれています。
    例えば、Apacheサーバ、SQLサーバ、Ruby on Rails開発環境等、思いつくものはほとんど全てです。
    ですので、このイメージを持ってきて、起動させればそれでほとんど開発環境構築終了です。
  • 軽量&起動が早い
    とはいえ、仮想マシンがイメージしている方は、起動が遅いのでは?とかハードウェア要件が厳しいのでは?とか思ってたりするかもしれません。
    コンテナは一瞬で起動します。本当に早いです。
    コンテナは仮想マシンと異なり、ハードウェアレベルでのリソース分割をしません。
    もっと上位のレベルに位置する、カーネルより上の部分でリソース分割します。
    (カーネルとは、簡単に言うとOSの土台となる部分です。)
    あくまでもコンテナは「プロセス」の一つであり、カーネルの機能を組み合わせることでリソース分割を実現しています。
    そのため、ハードウェア環境を丸々仮想化している仮想マシンよりも起動が早く、軽量なためにハードウェア要件が厳しくありません。

どのように開発するか?

コンテナは、起動時に「ボリュームマウント」を行うことで、ローカルの指定したファイルと共有することができます。(vオプション)

podman run -v <ローカルのファイルパス>:<コンテナ内のファイルパス> ...

また、ポートフォワーディングも可能です。(pオプション)

podman run -p <ローカルに割り当てるポート>:<コンテナ内のポート> ...

このように大変機能が充実しております。
これらの機能を駆使することで、コーディング自体はローカルのファイルをそのまま編集し、ビルドはコンテナ環境を使って行うことが可能になります。

Windows上でのPodmanの動作

コンテナは、基本Linuxカーネルをベースにして動くものです。(Windowsカーネル版もありますが・・・。)
Windowsで動くPodmanも基本Linuxカーネルで動いています。
WindowsでLinuxを動作させる技術であるWSLの上でPodmanを動かす仕組みになっているのです。

とはいえPodmanを使用する際は、WSLのことを全く意識しなくて大丈夫です。
(初回インストール時のみ、多少設定が必要ですが・・・)
Powershell上からそのままPodmanコマンドが使えたり、コンテナへのボリュームマウントもWindowsのファイルシステムからそのまま行うことができたりと、超簡単です。

裏でWSLが動いているだけなので、何も気にしなくて構いません。

最後に

ここでは大まかに紹介のみとさせていただきましたが、気になられた方はぜひ調べて導入してみてください!
Podmanを使って、環境を汚さず、丸々独立した開発環境を構築してみましょう!

コメント

タイトルとURLをコピーしました