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超入門 9/19 ニフクラミートアップ版

513 views

Published on

今さら聞けない人のためのDocker超入門 9/19 ニフクラミートアップ版です。

Published in: Engineering
  • Be the first to comment

今さら聞けない人のためのDocker超入門 9/19 ニフクラミートアップ版

  1. 1. 今さら聞けない人のための Docker超入門 9/19 ニフクラミートアップ版 日本仮想化技術株式会社 代表取締役社長兼CEO 宮原 徹(@tmiyahar) http://VirtualTech.jp
  2. 2. 自己紹介 • 本名:宮原 徹 • 1972年1月 神奈川県生まれ • 1994年3月 中央大学法学部法律学科卒業 • 1994年4月 日本オラクル株式会社入社 – PCサーバ向けRDBMS製品マーケティングに従事 – Linux版Oracle8の日本市場向け出荷に貢献 • 2000年3月 株式会社デジタルデザイン 東京支社長および株 式会社アクアリウムコンピューター 代表取締役社長に就任 – 2000年6月 (株)デジタルデザイン、ナスダック・ジャパン上場(4764) • 2001年1月 株式会社びぎねっと 設立 • 2006年12月 日本仮想化技術株式会社 設立 • 2008年10月 IPA「日本OSS貢献者賞」受賞 • 2009年10月 日中韓OSSアワード 「特別貢献賞」受賞 • ガンダム勉強会主宰・好きなモビルスーツはアッガイ 2
  3. 3. 日本仮想化技術株式会社 概要 • 社名:日本仮想化技術株式会社 – 英語名:VirtualTech Japan Inc. – 略称:日本仮想化技術/VTJ • 設立:2006年12月 • 資本金:3,000万円 • 売上高:10,702万円(2017年7月期) • 本社:東京都渋谷区渋谷1-8-1 • 取締役:宮原 徹(代表取締役社長兼CEO) • 伊藤 宏通(取締役CTO) • スタッフ:9名(うち、7名が仮想化技術専門エンジニアです) • URL:http://VirtualTech.jp/ • 仮想化技術に関する研究および開発 – 仮想化技術に関する各種調査 – 仮想化技術に関連したソフトウェアの開発 – 仮想化技術を導入したシステムの構築 – OpenStackの導入支援・新規機能開発 ベンダーニュートラルな 独立系仮想化技術の エキスパート集団 3
  4. 4. Dockerを動かそう 4
  5. 5. Dockerの特徴 • 1コンテナ1プロセスで動作する – 仮想マシンと比べてハイパーバイザーのオーバーヘッ ドが無いのでより高速 • ≒コンテナ内で1プロセス(1タスク)が動作する – サービスプロセスと並行で対話型シェルを動かすなど の考え方は基本的に無い(シングルタスク) – コンテナの中であれこれ動作させるのには向かない – WebアプリならWeb APサーバで1コンテナ、DBサーバ で1コンテナという感じ • Dockerイメージは(ルート)ファイルシステム – chrootを思い浮かべるとちょうどいい 5
  6. 6. 各方式の比較 ベアメタル(物理) 仮想マシン コンテナ 性能 最も速い I/Oが遅い 速い OS 1つだけ 複数種類を混在可 能 カーネルは1つだけ だが、ディストリ ビューションは混在 可能 リソース使用 システムで専有 メモリの無駄が多い OSカーネルは1つ で効率が良い 柔軟性 硬直的 非常に柔軟 単機能向け 主な用途 高速なDBなど 従来型の業務シス テム Webサービスのフロ ントエンド等、同一 のものを大量配備 する必要があるも の 6
  7. 7. Dockerを動かす手順 1. Dockerをインストールする 2. dockerサービスを起動する 3. Dockerイメージをダウンロードする 4. Dockerコンテナを起動する 単に動かすだけならとても簡単 7
  8. 8. Dockerをインストールする 1. CentOS 7をインストール 2. アップデートを行う – # yum update -y 3. Dockerパッケージをインストール – # yum install docker 4. bridge-utilsパッケージも入れておきます – # yum install bridge-utils – 入ってる場合もある 8
  9. 9. サービスの起動 1. dockerサービスを起動する – # systemctl start docker 2. システム起動時に自動起動するように有 効化しておく – # systemctl enable docker • Dockerサービスを停止すると、動作中のコ ンテナは停止します – 消えるわけではない 9
  10. 10. Dockerイメージをダウンロード 1. CentOSのDockerイメージを検索 – # docker search centos 2. CentOSのDockerイメージをダウンロード – # docker pull centos – 最新版(latest)がダウンロードされる 3. Dockerイメージを確認 – # docker images – 基本的にはIDで識別(同一IDに複数TAGも) 10
  11. 11. Dockerコンテナを実行(基本) 1. CentOSイメージでコンテナを実行 – # docker run -it centos /bin/bash – -i, --interactive=true|false – -t, --tty=true|false 2. 実行中のコンテナを確認 – ホスト側で実行(別ターミナルなど) – # docker ps -a – -a, --all=true|false – 一意のIDと名前が割り当てられる 11
  12. 12. Dockerコンテナ実行(応用) 1. コンテナ名を付ける – # docker run --name=名前 イメージ名 コマンド 2. シェルからコマンドを実行させる – # docker run イメージ名 /bin/bash -c "コマンド" – yumでパッケージをインストールしたり 3. より複雑な実行時処理を行いたい場合は Dockerfileを記述する(自動化) – どこまで複雑にするかはケースバイケース? 12
  13. 13. Dockerコンテナのライフサイクル 13
  14. 14. イメージとコンテナの変移 14 centos ①コンテナとして実行(docker run) httpd ② # yum install httpd centos httpd ③コンテナをイメージ化(docker commit) ④イメージをコンテナ化 (docker run) centos
  15. 15. コンテナをイメージ化 1. コンテナにhttpdパッケージをインストール – # docker run --name=httpd centos /bin/bash -c "yum install httpd -y" 2. httpdコンテナをコミットしてイメージ化 – # docker commit httpd httpd_template 3. イメージを確認 – # docker images 15
  16. 16. 新たなイメージからコンテナ実行 1. コンテナでhttpdを実行し、コンテナのポート80 番をホストの8080番に紐付ける – # docker run -d -p 8080:80 --name=web1 httpd_template /usr/sbin/httpd -D FOREGROUND – -d, --detach=true|false 2. ポートが紐付いていることを確認 – # docker ps -a – # curl localhost:8080 16
  17. 17. まとめ • 仮想マシンとコンテナを使い分け • Dockerを動作させるだけなら結構簡単 • イメージのライフサイクルを考えて • Dockerfileで簡単な自動化 • もう少し本格的な自動化にAnsibleなど? • 規模感が大きくなるならKubernetes 17
  18. 18. ありがとうございました 18

×