dockerはじめました。 gdg京都 2014年忘れ勉強会 lt
TRANSCRIPT
GDG京都 2014年忘れ勉強会 LT
Dockerはじめました。GDG神戸 野田悟志
どっかー?ぐっぐってみたDockerはソフトウェアコンテナ内のアプリケーションのデプロイメントを自動化する
オープンソースソフトウェアである。
LinuxカーネルにおけるLXCと呼ばれるLinuxコンテナ技術とAufsという特殊なファイ
ルシステムを利用してコンテナ型の仮想化を行う。VMware製品などの完全仮想化を
行うハイパーバイザー型製品と比べて、ディスク使用量は少なく、インスタンス作成や
インスタンス起動は速く、性能劣化がほとんどないという利点を持つ。dockerfileと呼
ばれる設定ファイルからコンテナイメージファイルを作成可能という特性を持つ。一方
で、コンテナOSとしてはホストOSと同じLinuxカーネルしか動作しない。
引用:Docker - Wikipediahttp://ja.wikipedia.org/wiki/Docker
どっかーって
なるほど。
よくわからん。
でも、1つだけ重要なことが。
どっかーは
Goで出来ています。
大事なことなのでもう一度
Goで出来ています。
ちょっと噛み砕くと
・コンテナという仮想環境が作れる
・VMWareとかの仮想マシンと違って、ホストOSのスペックがほぼ適用できる
・ドライブ容量もそんなに食わない
・コンテナに使えるのはx64のLinuxだけ
・DockerHubや、Dockerfileで簡単に共有できる
簡単に言うと
とてもサクサク動いてくれて
いっぱい環境作ってもOKな便利でいいやつだよ
なんでどっかー?
今まで仮想マシンを使ってた
・発表資料作るための検証環境
・開発環境をわけておくため
・新しいOSを使ってみたい場合、不具合だらけでも作り捨て出来るため
・新しい環境で心機一転
なんでどっかー?
問題点もいくつかあって困ってた
・容量食うからそんなにいっぱい作って保持できない
・ある程度の動作をさせるためには、ホストマシンのコアとかメモリとか結構割り当てる必要がある
なんでどっかー?
そんなところに
Dockerが!
どっかーふぁいる
Dockerfileはコンテナの作成と、作成したコンテナ上で実行したいコマンドを定義するファイル。
環境構築でパッケージのインストールとか、お決まりのコマンドを定義しておけば、作成とインストールを一括でやってくれる。複製や共有に便利。
実行コマンドの確認用にも使える。
どっかーふぁいる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
どっかーふぁいるでGAE/GoGAE/Go環境を作成するDockerfileを作ってみた
$ wget http://goo.gl/Dsh8zX -O Dockerfile
※Dockerfileは「Dockerfile」というファイル名にする
どっかーふぁいるでGAE/GoDockerfileでコンテナの作成
$ sudo docker build -t gopher/u1404 .
※「gopher/u1404」は任意のイメージ名
「.」はDockerfileの格納ディレクトリ(例はカレント)
どっかーふぁいるで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オプション
どっかーふぁいるでGAE/GoホストOSでアクセスできるように実行
$ dev_appserver.py ./ --port 8080 --host 0.0.0.0
ホストOSでブラウザから
「http://(IPアドレス):8080」にアクセスすればOK
どっかーふぁいるでGAE/Go
Demo The Go gopher@Renee French. http://goo.gl/q6msPI CC BY 3.0
どっかーの紹介でした
ご清聴
ありがとうございました
ふろく どっかーの使い方
環境
Ubuntu14.04 x64 ※VMWarePlayer 6で動作
どっかーの使い方
Dockerをインストール
$ sudo apt-get update$ sudo apt-get install docker.io
どっかーの使い方
Dockerコマンドを有効化
$ source /etc/bash_completion.d/docker.io
どっかーの使い方
Dockerバージョン確認
$ sudo docker --version
どっかーの使い方
Dockerイメージの検索 (例:Ubuntu検索)
$ sudo docker search ubuntu
$ sudo docker pull ubuntu
Dockerイメージを取得 (例:Ubuntu取得)
どっかーの使い方
取得済みDockerイメージ一覧
$ sudo docker images
どっかーの使い方
Dockerコンテナ作成(起動)
$ sudo docker run -i -t ubuntu /bin/bash
※「ubuntu」はイメージ名
「/bin/bash」は実行コマンド
どっかーの使い方
Dockerコンテナ一覧
$ sudo docker ps -a
※起動中のもののみなら-aオプションは不要
どっかーの使い方
Dockerコンテナの再起動
$ sudo docker start (ID)$ sudo docker attach --sig-proxy=false (ID)
※docker runはコンテナを新規作成するので、再起動はdocker startを使う
IDはコンテナのIDで、一意になれば上4桁程度でOK
どっかーの使い方
Dockerコンテナの削除 ※IDはコンテナのID
$ sudo docker rm (ID)
$ sudo docker rmi (ID)
Dockerイメージの削除 ※IDはイメージのID