Upgrade to Pro — share decks privately, control downloads, hide ads and more …

開発環境Docker以前、以後

 開発環境Docker以前、以後

More Decks by NearMeの技術発表資料です

Other Decks in Technology

Transcript

  1. 2 (ホスト型)仮想マシン時代 (VMWare/VirtualBox) • 統一環境は実現 ◦ 物理マシン上に任意のOSの仮想マシンを構築できる ◦ OSSのUbuntuなどが一般に利用される ◦

    物理マシン側をホスト、仮想マシン側をゲストと言う ◦ ホストのエディタでファイルを編集したい場合は、 共有フォルダを利用 • 時間がかかる ◦ マシンの起動に時間かかる(数十秒) ◦ 諸々のセットアップに時間がかかる(数十分から数時間) ▪ ビルドスクリプトを走らせて、諸々のコンパイルを待つ • 時間と共にバージョンが揃わなくなっていく ◦ プログラム言語のバージョン上げ忘れなど
  2. 3 コンテナ型仮想マシン時代(Docker) • 仮想マシンの状態を固定化するという発想 ◦ 状態を固定化したもの(イメージ)をビルド/ダウンロード ◦ イメージから状態を復元したもの(コンテナ)を利用 ◦ コンテナはすぐ起動できてすぐ破棄できる(数秒)

    ◦ コンテナに情報を追加したい場合は環境変数で注入 ◦ コンテナの状態を保存したい場合や、 ホストでファイルを編集したい場合はボリュームを利用 • 状態の固定化において差分更新を実現(差分ビルド) ◦ 状態変化の差分情報(レイヤ)を保持 ◦ ビルドスクリプト(Dockerfile)やソースコードの変更では キャッシュが効くところからビルドを始める ◦ 軽量のベースイメージの登場(Alpine/Slimなど)
  3. 4 コンテナ型仮想マシン時代(Docker) 続き • Docker Composeで構成管理 ◦ 環境変数やボリュームの指定などコマンドで行うのが面倒 ◦ 多数のコンテナを立ち上げることが多い

    ◦ Docker Composeファイルでそれらを簡潔に定義でき、 複雑な構成を一気に構築できる • Dockerの注意点 ◦ パフォーマンス(特にボリューム関連)に注意 ▪ 遅すぎる場合はホストで直接実行する ▪ (マウントオプションで速くなる時もある) ◦ セキュリティに注意 ▪ 設定によってはコンテナからホスト本体に侵入できてしまうので注意 https://docs.docker.com/compose/