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

docker_study_2024

Keito Yamada
March 01, 2024
120

 docker_study_2024

Keito Yamada

March 01, 2024
Tweet

Transcript

  1. Dockerとは Dockerが 場合 ない 〇〇開発プロジェクトのための環境構築手順書 環境構築作業が各自のPC環境に左右されて一筋縄ではいかないことが多い Macユーザー Macユーザー Macユーザー Windowsユーザー

    各自環境構築しといてね Windowsの場合は手順違うやん 何かと干渉してエラー出る 同じようにやったのに何故かできない ™ △△インストー’ ™ ✕✕インストー’ ™ 環境変数追加 ︙ メリット② チームでの環境構築が容易
  2. Dockerとは Dockerが 場合 ある Macユーザー Macユーザー Macユーザー Windowsユーザー これでコンテナ起動しといてね できた

    できた できた } 必要なソフトウェアのインストールや 環境設定をコード化したファイル Infrastracture as Code(IaC) Dockerfile docker-compose.yml 環境構築作業をコード化したファイルを共有することで、どこでも誰でも同じ環境が作れる メリット② チームでの環境構築が容易
  3. Dockerとは Ä PythonやNode.jsなどの環境構築でもコンテナごとに異なるバージョンの環境を作れるので、
 pyenvやnvmなどのバージョン管理ツールを使う必要がなくなる™ Ä コンテナは簡単に起動・削除できるので、従来のようにホストOS上にパッケージをインストールして
 環境構築する場合と比べて、使わなくなったパッケージが溜まっていくことが無い™ Ä 環境構築に失敗した場合も、コンテナを削除して一からやり直せる™ Ä

    GitHubのリポジトリによっては、コードに付随して実行環境がDockerで提供されていることがある™ Ä 〔技術名〕Docker で検索すると、その技術の実行環境をDockerで環境構築する方法が大体ヒットする™ Ä 環境構築のスキルがWindowsやMacに依存しなくなる。(Dockerに依存する) pyenv nvm メリット③ 個人での環境構築でも便利
  4. Dockerとは 新しいコトを覚えるのが大変 仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん ISBN-13 ‏ : ‎ 978-4839972745 y

    コンテl y イメー– y サービw y ネットワーe y 環境変• y バインドマウンp y ボリュームマウンp y ポートフォワーv y Dockerfileの書きr y docker-compose.ymlの書き方 ︙ デメリット 学習コストが高い
  5. Dockerの仕組み Docker 追加のメソッド 例:オブジェクト指向 継承 イメージの作成 ベースにするクラス 新しいイメージ Docker Hub:https://hub.docker.com/

    新しいクラス = ベースにするイメージ(Docker HubからPull) Dockerfile = イメージ設計を記述するファイル 追加のパッケージインストールや設定
  6. Dockerの仕組み マウント データの永続化 コンテナは簡単に破棄されるため、 コンテナ内にデータを保存すべきでない ホストOSの管理する領域 コンテナ Docker Engineの管理する領域 マウント

    = 共有ドライブ化 バインドマウント 方法 方法 ① ② ホストOSから直接ファイルの内容を編集できる ホストOSから直接ファイルの内容を編集できない コンテナ経由でアクセスする必要がある ボリュームマウント アプリのソースコード・DBなど アプリのソースコード・DBなど アプリのソースコード・DBなど
  7. Dockerfileの書き方 EXPOSE 8888 ポートの公開 ポート番号 CMD [ , ] "apache2"

    "-DFOREGROUND" イメージ起動時に実行するコマンド コマンド オプション イメージ作成時に実行するコマンド コマンドが複数ある場合は && で分割する RUN set -x && \ apt-get update && \ apt-get install -y x11-apps
  8. よく使うコマンド docker-compose up -d コンテナの起動(初回起動時のみイメージのビルドを行ってくれる) docker-compose ps 起動中のコンテナ一覧を表示 docker container

    exec example_container bash -it 指定したコンテナに入って作業する コンテナ名 docker-compose down コンテナ停止・削除 docker-compose up -d --build コンテナの起動(初回起動以降Dockerfileを編集し、再度イメージのビルドも行いたいとき)
  9. X Window System https://sourceforge.net/projects/vcxsrv/ VcXsrvのインストール XQuartzのインストール https://www.xquartz.org/ Windowsの場合 Macの場合 X

    Window Systemとは リモートマシンのGUIをローカルマシンで表示するツール 今回は「リモートマシン=Dockerコンテナ」として使用する
  10. 参考資料 https://www.docker.com/resources/what-container/ What is a Container? | Docker Docker入門(第一回)~Dockerとは何か、何が良いのか~ |

    さくらのナレッジ https://knowledge.sakura.ad.jp/13265/ Dockerfile のベストプラクティス — Docker-docs-ja 1.9.0b ドキュメント https://docs.docker.jp/engine/articles/dockerfile_best-practice.html Docker ドキュメント日本語化プロジェクト — Docker-docs-ja 24.0 ドキュメント https://docs.docker.jp/index.html