Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

初心者が伝えるDocker超入門

239 views

Published on

初心者が伝えるDocker超入門

Published in: Internet
  • Be the first to comment

  • Be the first to like this

初心者が伝えるDocker超入門

  1. 1. 初心者が伝えるDocker超入門 @chichi1091
  2. 2. 自己紹介 • Twitter:てっしー(@chichi1091) • 地方の小さいSIer • Java、PHP、C#が主な言語 • 家族構成(妻、長男、次男、三男、長 女)
  3. 3. 講師とか言っていますがDockerはめちゃ くちゃ初心者です(経験は1週間だけ) 間違いがあればツッコミよろしくです
  4. 4. Dockerとは?
  5. 5. Dockerとは? • Docker社(旧dotCloud)が PaaS事業で使っていた技術を OSS化したもの • アプリケーションを「コンテナ」 にパッケージングしてデプロイ、実行という 流れをコード化できる • Dockerfileがあればいつでも同じものが再現で きる • Go言語で書かれている この辺がコンテナっぽ い
  6. 6. 他の仮想化技術との違い Hyperバイザーではなくコンテナ型の仮想化技術 <Hyperバイザー型> • 仮想マシンを制御する プログラムが必要 • ホストサーバ全体を 仮想化で利用 <コンテナ型> • OSカーネルはホストOS のものを共有 • 各コンテナはプロセスとして認識 • ホストマシンへの処理負荷が低い VMWare esxi ハードウェア Hyper バイザー VM VM Bin/lib s Bin/lib s APP APP APP APP ハードウェア OS Bin/libs Bin/libs APP APP APP APP Docker Docker コンテナ
  7. 7. 結局コンテナってなに? アプリ本体、必要なライブラリをパッケー ジングしたもの(ゲストOSは含まない) 例:Wordpress+PHP+Apache+MySQL=コンテナ
  8. 8. Dockerのメリット・デメリッ ト <メリット> • ホストOSのカーネルを直接使うためオーバーヘッド が小さく高速 • イメージ(雛形)からコンテナ(実体)を作るため 同じ環境を簡単に複数作れる <デメリット> • 学習コストが高い(特にネットワーク関係) • WindowsゲストOS非対応
  9. 9. Dockerやってみよう
  10. 10. Dockerやってみよう CentOS上にDocker環境をインストール 1. Dockerパッケージをインストール # yum install docker 2. bridge-utilsパッケージもインストール # yum install bridge-utils 3. Dockerサービスの起動 # service docker start
  11. 11. Dockerイメージのダウンロー ド 1. CentOSのDockerイメージを検索 # docker search centos 2. CentOSのDockerイメージをダウンロード # docker pull centos (最新版がダウンロードされる) 3. Dockerイメージを確認 # docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE centos latest eeb3a076a0be 3 days ago 196.7 MB
  12. 12. Dockerの実行 1. CentOSコンテナの実行 # docker run –i –t centos /bin/bash ・-i 標準入力有効 ・-t 仮想端末あり ・-d バックグラウンド実行 ・-e 環境変数を指定(ex:-e HOGE=“fuga”) ・-v ホストマシンにマウント(ex:-v /data/logs:/var/log) 2. コンテナの確認 # docker ps –a ・-a 終了済みも含む CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 259b7789591c centos:latest "/bin/bash" 25 seconds ago berserk_davinci
  13. 13. その他便利なコマンド • コンテナの停止/再実行/一時停止 # docker stop/start/pause • コンテナに接続 # docker attach • 終了済みコンテナの削除 # docker rm <CONTAINER> • イメージの削除 # docker rmi <IMAGE> • コンテナのイメージ化 # docker commit <CONTAINER> <IMAGE> • コンテナ情報の表示 # docker inspect
  14. 14. Dockerfile
  15. 15. Dockerfile Dockerfileってなに? • Dockerコンテナの構成内容をまとめて記述す るテキスト型式のファイル • 1行につき1命令を「{命令} {引数}」で 記述する • 「docker build」コマンドで順次実行される
  16. 16. Dockerfileに書ける命令 命令 内容 FROM 元になるイメージ MAINTAINE R Dockerfileの作成者 RUN コマンドの実行 ADD ファイル、ディレクトリの追加 CMD コンテナの実行コマンド(docker runで上書き 可) ENTRYPOIN T コンテナの実行コマンド(docker runで上書き 不可) WORKDIR 作業ディレクトリの指定 ENV 環境変数の設定 USER 実行ユーザの設定 EXPOSE ポートの指定 VOLUME マウント
  17. 17. Dockerfileの例 ENTRYPOINTでhttpdの起動を指定しているのでdocker run時にコマンド指定が不 要 FROM centos:latest MAINTAINER cterash<cterash@jops.co.jp> RUN yum install httpd –y ENTRYPOINT /usr/sbin/httpd –D FOREGROUND • Dockerfileの作成 • イメージの作成 # docker build –t <IMAGE_NAME> ./Dockerfile • コンテナの作成 # docker run –i –t <IMAGE_NAME>
  18. 18. Docker活用事例 他力本願でごめんなさい
  19. 19. Docker活用事例 Jenkins + Pipeline Plugin + Docker Jenkins上でDockerを使う 方法をまとめたスライド Docker上で実施したテストを Jenkinsで参照することが 紹介されています
  20. 20. Docker活用事例 LIGでのDocker活用 LIGの自社案件でのDocker事例 を紹介したスライド マイクロサービス化などいまどき っぽい環境です 余談 先月LIG社の勉強会「づや会」に参加しました とってもおしゃれなオフィスでした
  21. 21. Docker活用事例 Docker を使った開発環境構築事例 モバイルゲームサービス の開発環境をDocker化 した事例 Windows上でDockerを 利用する方法などが記載されています
  22. 22. まとめ
  23. 23. まとめ • サーバリソースを抑えつつ仮想化が可能! • インフラもコード化できてみんな同じ環境で 作業できる!(俺の環境では動いたとはもう言わせない) • ぶっ壊れてもすぐ復元できる! • でも学習コストが高い(運用でDockerを使い出すとノ ウハウがないとつらい) • 開発環境やCIと相性がとってもよさそう! • 「Dockerで提供します」とか言えたらなんか カッコいい! • DockerHubとかはまたの機会で( TДT)ゴメンヨー
  24. 24. ご清聴ありがとうございました

×