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

Dockerハンズオン 2019May / Docker HandsOn 2019May

Dockerハンズオン 2019May / Docker HandsOn 2019May

2019/05/22(水) 10:00 〜 12:00にDeveloper Dojo Shibuyaで開催した「IBM Cloud + Docker 入門」の「Docker ハンズオン」の資料です。

ハンズオン内容:
http://ibm.biz/dojo-docker-handson

Kyoko Nishito

May 22, 2019
Tweet

More Decks by Kyoko Nishito

Other Decks in Technology

Transcript

  1. Docker ハンズオン 1. ハンズオンに関係するDockerの技術解説 10分程度 2. ハンズオン • 各⾃のペースで進めていただきます •

    質問があればおしらせください • 終わらなかった場合は持ち帰って実施も可能です!
  2. What are Containers? 分離したプロセスのグループ • VMと似ているがコンテナはプロセスレベルで管理される • 全てのプロセスは共通のカーネル上で • それぞれのコンテナは分離された名前空間(namespaces)を持つ

    • PID – プロセスID • USER – ユーザーおよびグループID • UTS - ホスト名とドメイン名 • NS – マウントポイント • NET - ネットワーク デバイス・スタック・ポート • IPC -プロセス間通知メカニズム (メッセージ・キューなど) • cgroups – リソース制限とモニター • Docker はコンテナに分離したファイルシステムを提供
  3. VM vs Container / /etc /bin .... /var / /etc

    /bin .... /var PID, USER, UTS, NS, NET, IPC, cgroups PID, USER, UTS, NS, NET, IPC, cgroups / /etc /bin .... /var PID, USER, UTS, NS, NET, IPC, cgroups コンテナごとに分離された名前空間 コンテナごとに分離したファイルシステム
  4. Docker Component Overview BaseOS/Kernel 10 Containers Docker Engine $ docker

    run... $ docker build... Registry Exposed/Mapped Ports Liberty Ubuntu mysql nginx Images Client Docker Engine • ホスト上のコンテナの管理 • クライアントからのリクエストの受⼊ • REST API • コンテナポートとホストポートのマッピング • 例 80 → 3582 • Images •コンテナイメージ • Docker Client • Docker Engineの操作 • イメージのビルドなどの操作 • Docker Registry •コンテナイメージDB Ubuntu DockerHost Liberty
  5. Dockerfile • Docker イメージをビルドす るために必要な命令のリスト • 各⾏がが1つの層(layer)とし てイメージがビルドされる FROM python:3.6.1-alpine

    RUN pip install flask CMD ["python","app.py"] COPY app.py /app.py 9ee6b6aa5847 COPY app.py /app.py 0.16MB 103ccd6ad90f CMD ["python","app.py"] 10MB d2603e1b347d RUN pip install flask 0B ad89def2e29b FROM python:3.6.1-alpine 120MB Docker Image
  6. Shared / Layered / Union Filesystems • Docker は copy-on-write

    (union) ファイルシステムを使⽤ • 新ファイル(または編集)は現レイヤーまたは上位レイヤーにのみ影響する • レイヤーは再利⽤可能 • ホスト上の複数コンテナ • ⾼速起動を可能にする • Dockerイメージ • レイヤー化されたTarファイル tomcat liberty tomcat Fedora Ubuntu Filesystem コンテナ1 コンテナ2 コンテナ3 コンテナ4 app1 app2 app4 app3 レイヤー レイヤー レイヤー
  7. 14