28
GDG京都 2014年忘れ勉強会 LT Dockerはじめました。 GDG神戸 野田悟志

dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

Embed Size (px)

Citation preview

Page 1: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

GDG京都 2014年忘れ勉強会 LT

Dockerはじめました。GDG神戸 野田悟志

Page 2: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかー?ぐっぐってみたDockerはソフトウェアコンテナ内のアプリケーションのデプロイメントを自動化する

オープンソースソフトウェアである。

LinuxカーネルにおけるLXCと呼ばれるLinuxコンテナ技術とAufsという特殊なファイ

ルシステムを利用してコンテナ型の仮想化を行う。VMware製品などの完全仮想化を

行うハイパーバイザー型製品と比べて、ディスク使用量は少なく、インスタンス作成や

インスタンス起動は速く、性能劣化がほとんどないという利点を持つ。dockerfileと呼

ばれる設定ファイルからコンテナイメージファイルを作成可能という特性を持つ。一方

で、コンテナOSとしてはホストOSと同じLinuxカーネルしか動作しない。

引用:Docker - Wikipediahttp://ja.wikipedia.org/wiki/Docker

Page 3: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーって

なるほど。

よくわからん。

でも、1つだけ重要なことが。

Page 4: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーは

Goで出来ています。

Page 5: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

大事なことなのでもう一度

Goで出来ています。

Page 6: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

ちょっと噛み砕くと

・コンテナという仮想環境が作れる

・VMWareとかの仮想マシンと違って、ホストOSのスペックがほぼ適用できる

・ドライブ容量もそんなに食わない

・コンテナに使えるのはx64のLinuxだけ

・DockerHubや、Dockerfileで簡単に共有できる

Page 7: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

簡単に言うと

とてもサクサク動いてくれて

いっぱい環境作ってもOKな便利でいいやつだよ

Page 8: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

なんでどっかー?

今まで仮想マシンを使ってた

・発表資料作るための検証環境

・開発環境をわけておくため

・新しいOSを使ってみたい場合、不具合だらけでも作り捨て出来るため

・新しい環境で心機一転

Page 9: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

なんでどっかー?

問題点もいくつかあって困ってた

・容量食うからそんなにいっぱい作って保持できない

・ある程度の動作をさせるためには、ホストマシンのコアとかメモリとか結構割り当てる必要がある

Page 10: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

なんでどっかー?

そんなところに

Dockerが!

Page 11: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーふぁいる

Dockerfileはコンテナの作成と、作成したコンテナ上で実行したいコマンドを定義するファイル。

環境構築でパッケージのインストールとか、お決まりのコマンドを定義しておけば、作成とインストールを一括でやってくれる。複製や共有に便利。

実行コマンドの確認用にも使える。

Page 12: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーふぁいるFROM ubuntuMAINTAINER scarviz <[email protected]>

# add work userRUN adduser gopherRUN echo "gopher:gopher" |chpasswdRUN gpasswd -a gopher sudo

# install packageRUN apt-get updateRUN apt-get install -y vim wget unzip git mercurial python

# change userUSER gopher# work dirWORKDIR /home/gopher

Page 13: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーふぁいるでGAE/GoGAE/Go環境を作成するDockerfileを作ってみた

$ wget http://goo.gl/Dsh8zX -O Dockerfile

※Dockerfileは「Dockerfile」というファイル名にする

Page 14: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーふぁいるでGAE/GoDockerfileでコンテナの作成

$ sudo docker build -t gopher/u1404 .

※「gopher/u1404」は任意のイメージ名

 「.」はDockerfileの格納ディレクトリ(例はカレント)

Page 15: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーふぁいるでGAE/Goコンテナを作成し、起動する

$ sudo docker run -i -t gopher/u1404 /bin/bash

$ sudo docker run -i -t -v (ホストの共有dir):/home/gopher/share_gopher gopher/u1404 /bin/bash

※共有ディレクトリを作成する場合は-vオプション

Page 16: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーふぁいるでGAE/GoホストOSでアクセスできるように実行

$ dev_appserver.py ./ --port 8080 --host 0.0.0.0

ホストOSでブラウザから

「http://(IPアドレス):8080」にアクセスすればOK

Page 17: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーふぁいるでGAE/Go

Demo The Go gopher@Renee French. http://goo.gl/q6msPI CC BY 3.0

Page 18: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーの紹介でした

ご清聴

ありがとうございました

Page 19: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

ふろく どっかーの使い方

環境

 Ubuntu14.04 x64 ※VMWarePlayer 6で動作

Page 20: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーの使い方

Dockerをインストール

$ sudo apt-get update$ sudo apt-get install docker.io

Page 21: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーの使い方

Dockerコマンドを有効化

$ source /etc/bash_completion.d/docker.io

Page 22: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーの使い方

Dockerバージョン確認

$ sudo docker --version

Page 23: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーの使い方

Dockerイメージの検索 (例:Ubuntu検索)

$ sudo docker search ubuntu

$ sudo docker pull ubuntu

Dockerイメージを取得 (例:Ubuntu取得)

Page 24: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーの使い方

取得済みDockerイメージ一覧

$ sudo docker images

Page 25: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーの使い方

Dockerコンテナ作成(起動)

$ sudo docker run -i -t ubuntu /bin/bash

※「ubuntu」はイメージ名

 「/bin/bash」は実行コマンド

Page 26: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーの使い方

Dockerコンテナ一覧

$ sudo docker ps -a

※起動中のもののみなら-aオプションは不要

Page 27: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーの使い方

Dockerコンテナの再起動

$ sudo docker start (ID)$ sudo docker attach --sig-proxy=false (ID)

※docker runはコンテナを新規作成するので、再起動はdocker startを使う

 IDはコンテナのIDで、一意になれば上4桁程度でOK

Page 28: dockerはじめました。 GDG京都 2014年忘れ勉強会 LT

どっかーの使い方

Dockerコンテナの削除 ※IDはコンテナのID

$ sudo docker rm (ID)

$ sudo docker rmi (ID)

Dockerイメージの削除 ※IDはイメージのID