Slide 1

Slide 1 text

もう難しくない! 誰でもカンタンDocker入門 〜30分であなたのPCにアプリを立ち上げる〜 日本仮想化技術株式会社 [email protected] 2025/04/23 1

Slide 2

Slide 2 text

日本仮想化技術株式会社 概要 • 社名:日本仮想化技術株式会社 • 英語名:VirtualTech Japan Inc. • 設立:2006年12月 • 資本金:3,000万円 • 本社:東京都渋谷区渋谷1-8-1 • 取締役:宮原 徹(代表取締役社長兼CEO)、伊藤 宏通(取締役CTO) • スタッフ:11名(うち、8名が仮想化技術専門エンジニアです) • URL:http://VirtualTech.jp/ • 仮想化技術に関する研究および開発 • 仮想化技術に関する各種調査 • 仮想化技術に関連したソフトウェアの開発 • 仮想化技術を導入したシステムの構築 • OpenStackの導入支援・新規機能開発 2 ベンダーニュートラルな 独立系仮想化技術の エキスパート集団 会社概要

Slide 3

Slide 3 text

わたくしについて • 北海道在住 • DevOpsのOps側 • かんたんDevOps • KubernetesのPoC・検証 • 書籍執筆 • Webメディア連載 https://thinkit.co.jp/series/11545 https://thinkit.co.jp/series/11642 https://thinkit.co.jp/series/10843 3

Slide 4

Slide 4 text

アジェンダ • そもそもコンテナを使うと何がいいの? • Dockerをインストールしてみよう • Webアプリを動かしてみよう 4

Slide 5

Slide 5 text

そもそもコンテナを使うと何がいいの? 5

Slide 6

Slide 6 text

まずはコンテナを使わない場合を考える • サーバーを用意 • スペックは? • OSは? • アプリ動かす環境を構築 • ミドルウェア・ライブラリ • バージョンは? • アプリケーションをデプロイ • どのユーザーで動かす? • どこに配置する? • パーミッションは? 6

Slide 7

Slide 7 text

環境が複雑で知識が必要 • サーバーのメンテナンスが必要 • 環境を増やすのが大変 • 開発者1人1人のPCに用意する場合は? • バージョンはどう合わせる? • 構築担当者のスキルの差 • Aさんが構築するとなぜかアプリが動かない • Bさんの環境でしか再現しない • リソースが足りない or 余りまくってる 7

Slide 8

Slide 8 text

コンテナのメリット • コンテナは環境が標準化され、アプリケーションとその実行に必要なライ ブラリなどの依存関係をまとめてコンテナ化することで、開発環境、ス テージング環境、本番環境などの異なる環境にデプロイしても一貫した動 作が保証されます。 • 環境を増やしやすい • 開発者は必要な環境がパッケージングされたコンテナイメージを利用する ことで、短時間で開発環境を構築できます。これにより、開発者はコー ディングに集中できます。 • 誰でも同じ環境を利用できる • コンテナイメージは異なるインフラ環境へ容易にデプロイできます。 DevOpsと相性がよく、CI/CDを利用してデプロイの自動化を促進します。 • 自動化しやすい 8

Slide 9

Slide 9 text

コンテナのメリット • リソースを効率的に使用します。コンテナはOS全体を仮想化するのでは なく、アプリケーションと必要な依存関係のみがパッケージングされてい るため、仮想マシンなどと比較して軽量です。 • 空きスペースに詰め込みやすい • コンテナは仮想マシンと比べ高速に起動します。これはOS全体が仮想化 されているのではなく、アプリケーションのみが起動するため、OSの初 期化処理を省略しているためです。 • 高速に起動する 9

Slide 10

Slide 10 text

よくわかりません。 10

Slide 11

Slide 11 text

お弁当に例えてみます。 11

Slide 12

Slide 12 text

お弁当の良さ • 持ち運びが簡単 • どこでも食べられる • 誰でも食べられる • 一度作ったお弁当は、場所を 移動しても、食べる人が変わ っても、中身は変わらない 12

Slide 13

Slide 13 text

弁当箱に入っていないと? • 手荷物が増える • 運ぶのが大変 • 忘れ物があるかも? • 醤油が入ってなかった・・・ 13

Slide 14

Slide 14 text

コンテナ=お弁当箱 • お弁当のおかず=アプリケーション • 調味料=ライブラリ、ランタイム、ミ ドルウェア 14

Slide 15

Slide 15 text

15

Slide 16

Slide 16 text

コンテナのメリット • コンテナは環境が標準化され、アプリケーションとその実行に必要なライ ブラリなどの依存関係をまとめてコンテナ化することで、開発環境、ス テージング環境、本番環境などの異なる環境にデプロイしても一貫した動 作が保証されます。 • 環境を増やしやすい • 開発者は必要な環境がパッケージングされたコンテナイメージを利用する ことで、短時間で開発環境を構築できます。これにより、開発者はコー ディングに集中できます。 • 誰でも同じ環境を利用できる • コンテナイメージは異なるインフラ環境へ容易にデプロイできます。 DevOpsと相性がよく、CI/CDを利用してデプロイの自動化を促進します。 • 自動化しやすい 16

Slide 17

Slide 17 text

コンテナは軽量で高速 17

Slide 18

Slide 18 text

レストランと比較してみます。 18 VS

Slide 19

Slide 19 text

お弁当の場合 • 持ち運び可能 • どこでもすぐ食べられる 19

Slide 20

Slide 20 text

レストランの場合 • 持ち運びはできない • 注文してから調理開始 • すぐには食べられない 20

Slide 21

Slide 21 text

レストラン=サーバーや仮想マシン • レストランには運営する人がいる=OS • 調理をする人 • 料理を運ぶ人 • 会計をする人 • 料理を提供する以外にも処理が発生して いる 21

Slide 22

Slide 22 text

コンテナのメリット • リソースを効率的に使用します。コンテナはOS全体を仮想化するのでは なく、アプリケーションと必要な依存関係のみがパッケージングされてい るため、仮想マシンなどと比較して軽量です。 • 空きスペースに詰め込みやすい • コンテナは仮想マシンと比べ高速に起動します。これはOS全体が仮想化 されているのではなく、アプリケーションのみが起動するため、OSの初 期化処理を省略しているためです。 • 高速に起動する 22

Slide 23

Slide 23 text

まとめ • コンテナはアプリケーションの開発から運用までを効率化でき る • 環境構築の手間を減らし誰でも簡単に利用できる • 環境の差によるバグや障害を減らせる • まずはDockerなどの簡単に始められるツールを使って 簡単なコンテナを動かしてみよう 23

Slide 24

Slide 24 text

過去のコンテナ関連勉強会リンク • 今さら聞けないDocker入門 https://www.youtube.com/watch?v=0BaqBahlOaM • Visual Studio CodeのDev Containersを使って開発環境構築し てみるよ https://www.youtube.com/watch?v=-ostHNgFNM8 • Dockerに疲れた人のためのLXDではじめるシステムコンテナ入 門 https://www.youtube.com/watch?v=WeQiGmuwnNU • Kubernetes再入門 https://www.youtube.com/watch?v=5e6MJvw0QqE 24

Slide 25

Slide 25 text

Dockerをインストールしてみよう 25

Slide 26

Slide 26 text

https://www.docker.com/ja-jp/products/docker-desktop/ 26

Slide 27

Slide 27 text

インストーラーを起動 27

Slide 28

Slide 28 text

指示に従ってインストールを進める 28

Slide 29

Slide 29 text

Docker Desktopを起動 29

Slide 30

Slide 30 text

初回起動時に規約に同意させられる 30

Slide 31

Slide 31 text

Docker Subscription Service Agreement • 有料サブスクリプションサービスの認証 • 251人以上の大企業は有料サブスクリプション契約をしてね • 個人利用では関係ない 31

Slide 32

Slide 32 text

初期設定 32

Slide 33

Slide 33 text

インストール〜初期設定が完了 33

Slide 34

Slide 34 text

Webアプリを動かしてみよう 34

Slide 35

Slide 35 text

アプリの検索 35

Slide 36

Slide 36 text

n8nを起動してみる 36

Slide 37

Slide 37 text

n8n? • IFTTTのような • MSのPower Automateのよう な • 作業の自動化ツール 37

Slide 38

Slide 38 text

38

Slide 39

Slide 39 text

ポートの設定 39

Slide 40

Slide 40 text

コンテナ起動後の画面 40

Slide 41

Slide 41 text

n8nの初期設定 41

Slide 42

Slide 42 text

n8nワークフロー作成画面 42

Slide 43

Slide 43 text

43

Slide 44

Slide 44 text

まとめ • Docker Desktopを使うことで、マウスぽちぽちでコンテナ起動 ができた • 誰でも簡単にコンテナに入門できる • あなたの環境でもいろいろなコンテナを実行してみよう! 44

Slide 45

Slide 45 text

これからの学習 • 他のアプリも試してみる • コマンドから操作してみる • 自分のアプリをコンテナ化してみる • コンテナのレシピ「Dockerfile」を作ってみる • コンテナのセキュリティ • 複数のコンテナを組み合わせて管理、docker-compose • Kubernetesへ・・・ 45

Slide 46

Slide 46 text

参考リンク • Docker Desktopダウンロードページ https://www.docker.com/ja-jp/products/docker-desktop/ • Docker公式ドキュメント https://docs.docker.com/ • Dockerドキュメント日本語版(有志による翻訳) https://docs.docker.jp/index.html • コンテナカタログ「Dockerhub」 https://hub.docker.com/ 46

Slide 47

Slide 47 text

47