SlideShare a Scribd company logo
Docker やってみた
Docker 1.0
6月9日、Docker 1.0がリリースされました! (^o^)/
ということで
Dockerを紹介してみよう。ただし…
偏った視点からdockerをオススメします。
すでに docker をお使いの方に有益な情報は0です。
dockerのホントのすごさはこんなもんじゃありません。たぶん
こんなとき、どうしてます…?
ちょっと XXX 試してみたいな… (XXX = node.js, nginx, mongodb, postgresql, …)
でも、面倒なのはちょっと…
苦難の日々
1. MacBook上にインストール
環境を汚したくない ヽ(`Д´#)ノ ムキー!!
いろいろ試してるうちに、設定変更やライブラリの依存、ぐしゃぐしゃ ヽ(`Д´#)ノ ムキー!!
2. VirtualBoxにLinuxインストールしてサーバ立てる
VM上なら何でもやり放題! (゚д゚)ウマー
VMイメージ、意外にデカイんです ヽ(`Д´#)ノ ムキー!!
VM起動、時間かかりすぎ ヽ(`Д´#)ノ ムキー!!
いろいろな環境を仮想環境で用意するのは面倒 ヽ(`Д´#)ノ ムキー!!
3. AWS上に環境を作る
micro Instance いっぱい作る! (゚д゚)ウマー
AWSにつながらないよ,ここのスタバ… (´・ω・`)ショボーン
Dockerなら ウマウマ(゚∀∀゚)
ホスト環境を汚さない、仮想コンテナ!
Virtual Machineより軽量, 速い!
docker hubのofficial imageを使って一瞬で環境構築!
一度環境設定してしまえば、元に戻すのは一瞬。いつでもクリーンな環境に戻れる!
Linuxでつくった環境を簡単にMacに持ち出せる, どこでも動く, Portable !
「うまい うますぎる」
About Docker
コンテナ型仮想化環境 = 軽量な仮想化環境
About Docker
Build, Ship and Run Any App, Anywhere
About Docker
Docker Hub
About Docker
Dockerfileで環境設定を自動化、同一構成のコンテナを簡単に作成できる
複数の開発者でサーバ環境を共有
均一のテスト環境, CI
Immutable Infrastructure
デプロイメントのたびに新しいインフラを構築し、既存のインフラは不要になった後に廃棄
How to Play
MongoDBを使ってみた
環境をcommitしてみた
Dockerfileで環境構築を自動化してみた
MongoDBを使ってみた
$ docker pull mongo
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
mongo 2.6 c1639b86dba1 2 weeks ago 1.038 GB
mongo 2.6.1 c1639b86dba1 2 weeks ago 1.038 GB
mongo latest c1639b86dba1 2 weeks ago 1.038 GB
$ docker run --name test-mongo -d mongo
$ docker run -it --link test-mongo:mongo --rm mongo sh -c 'exec mongo
"$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/test"'
> use testdb;
switched to db testdb
> obj1 = { name : "mongo", category : "database" };
{ "name" : "mongo", "category" : "database" }
> db.Orders.save(obj1);
WriteResult({ "nInserted" : 1 })
> obj2 = { name : "mysql", category : "database" };
{ "name" : "mysql", "category" : "database" }
> db.Orders.save(obj2);
WriteResult({ "nInserted" : 1 })
> db.Orders.find();
{ "_id" : ObjectId("53a24ce6919a6e0781c967e7"), "name" : "mongo", "category" : "database" }
{ "_id" : ObjectId("53a24d0c919a6e0781c967e8"), "name" : "mysql", "category" : "database" }
環境をcommitしてみた
$ docker run -i -t ubuntu /bin/bash
root@3f79adef422d:/# apt-get install iputils-ping
...
root@3f79adef422d:/# exit
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
3f79adef422d ubuntu:latest /bin/bash 6 days ago Exited (0) 3
seconds ago sick_ardinghelli
$ docker commit 3f79adef422d ping-ubuntu
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ping-ubuntu latest 62c89558e47b 6 days ago 276.5 MB
ubuntu latest ad892dd21d60 2 weeks ago 275.5 MB
$ docker run -i -t ping-ubuntu /bin/bash
root@90230eadc1d8:/# ping localhost
Dockerfileで環境構築を自動化してみた
$ cat Dockerfile
FROM node
ADD . /usr/src/app
WORKDIR /usr/src/app
RUN npm install
EXPOSE 3000
CMD [ "./bin/www" ]
$ docker build -t="nishio/node:latest" .
$ docker images
nishio/node latest 2c6feb1e2ab7 3 days ago 1.115 GB
node 0.10 6a8a9894567d 2 weeks ago 1.112 GB
node 0.10.28 6a8a9894567d 2 weeks ago 1.112 GB
node latest 6a8a9894567d 2 weeks ago 1.112 GB
$ docker run --name test-node -p 3000:3000 -d nishio/node
できたらAWSに置くだけ
References
Docker
Introduction to Docker
Be a Happier Developer with Docker

More Related Content

What's hot

20100717tobesetu
20100717tobesetu20100717tobesetu
20100717tobesetu
akitsukada
 
静的サイトどこにする?
静的サイトどこにする?静的サイトどこにする?
静的サイトどこにする?
ogawatti
 
Dive into dockerネットワーク
Dive into dockerネットワークDive into dockerネットワーク
Dive into dockerネットワークKazuyuki Mori
 
Docker compose selenium-grid_tottoruby_25
Docker compose selenium-grid_tottoruby_25Docker compose selenium-grid_tottoruby_25
Docker compose selenium-grid_tottoruby_25
Masayuki Hokimoto
 
Iocage
IocageIocage
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
Makoto Setoh
 
オープンソース開発と、 あるフレームバッファコンソールの話 ~名古屋応用編~
オープンソース開発と、あるフレームバッファコンソールの話~名古屋応用編~オープンソース開発と、あるフレームバッファコンソールの話~名古屋応用編~
オープンソース開発と、 あるフレームバッファコンソールの話 ~名古屋応用編~
nullnilaki
 
nioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になったnioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になった
chibochibo
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
npsg
 
Yapcasia2012 ltthon
Yapcasia2012 ltthonYapcasia2012 ltthon
Yapcasia2012 ltthonturugina
 
勉強会0614 vagrant
勉強会0614 vagrant勉強会0614 vagrant
勉強会0614 vagrant
Yu Ito
 
Log analysis by using elasticsearch,kibana and fluentd.
Log analysis by using elasticsearch,kibana and fluentd.Log analysis by using elasticsearch,kibana and fluentd.
Log analysis by using elasticsearch,kibana and fluentd.
Tadayasu Yotsu
 
あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。
Masahito Zembutsu
 
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜHUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
basicinc_dev
 
Rancher.ioを試してみる
Rancher.ioを試してみるRancher.ioを試してみる
Rancher.ioを試してみる
Takaaki Fukai
 
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
Masahide Yamamoto
 
Kubernetesできること
KubernetesできることKubernetesできること
Kubernetesできること
iPride Co., Ltd.
 
Apache Auroraの始めかた
Apache Auroraの始めかたApache Auroraの始めかた
Apache Auroraの始めかた
Masahito Zembutsu
 

What's hot (20)

Open stackceilometer
Open stackceilometerOpen stackceilometer
Open stackceilometer
 
20100717tobesetu
20100717tobesetu20100717tobesetu
20100717tobesetu
 
静的サイトどこにする?
静的サイトどこにする?静的サイトどこにする?
静的サイトどこにする?
 
Dive into dockerネットワーク
Dive into dockerネットワークDive into dockerネットワーク
Dive into dockerネットワーク
 
Docker compose selenium-grid_tottoruby_25
Docker compose selenium-grid_tottoruby_25Docker compose selenium-grid_tottoruby_25
Docker compose selenium-grid_tottoruby_25
 
Iocage
IocageIocage
Iocage
 
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
軽量EvernoteクライアントSmartEverにおけるアプリ高速化の工夫と課題
 
GContractsの基礎
GContractsの基礎GContractsの基礎
GContractsの基礎
 
オープンソース開発と、 あるフレームバッファコンソールの話 ~名古屋応用編~
オープンソース開発と、あるフレームバッファコンソールの話~名古屋応用編~オープンソース開発と、あるフレームバッファコンソールの話~名古屋応用編~
オープンソース開発と、 あるフレームバッファコンソールの話 ~名古屋応用編~
 
nioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になったnioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になった
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
 
Yapcasia2012 ltthon
Yapcasia2012 ltthonYapcasia2012 ltthon
Yapcasia2012 ltthon
 
勉強会0614 vagrant
勉強会0614 vagrant勉強会0614 vagrant
勉強会0614 vagrant
 
Log analysis by using elasticsearch,kibana and fluentd.
Log analysis by using elasticsearch,kibana and fluentd.Log analysis by using elasticsearch,kibana and fluentd.
Log analysis by using elasticsearch,kibana and fluentd.
 
あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。
 
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜHUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
 
Rancher.ioを試してみる
Rancher.ioを試してみるRancher.ioを試してみる
Rancher.ioを試してみる
 
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
 
Kubernetesできること
KubernetesできることKubernetesできること
Kubernetesできること
 
Apache Auroraの始めかた
Apache Auroraの始めかたApache Auroraの始めかた
Apache Auroraの始めかた
 

Viewers also liked

Nắn chỉnh răng cho trẻ
Nắn chỉnh răng cho trẻNắn chỉnh răng cho trẻ
Nắn chỉnh răng cho trẻ
Nha khoa Trang Dung
 
5 personal
5 personal5 personal
5 personal
Katerin Colcha
 
Slide share
Slide shareSlide share
Slide share
Armstrong Kwakye
 
6 tex
6 tex6 tex
Kelas 2b t1 st3 pb 5 (teguh hidayat)
Kelas 2b t1 st3 pb 5 (teguh hidayat)Kelas 2b t1 st3 pb 5 (teguh hidayat)
Kelas 2b t1 st3 pb 5 (teguh hidayat)Teguh Hidayat
 
4 april
4 april4 april
4 april
nurulain302
 
長門を見分けるそりゅーしょん
長門を見分けるそりゅーしょん長門を見分けるそりゅーしょん
長門を見分けるそりゅーしょん
Haruka Nakajima
 
Digiwomen - the art of in mails
Digiwomen - the art of in mailsDigiwomen - the art of in mails
Digiwomen - the art of in mails
Michael Van de Velde
 
Quizzes
QuizzesQuizzes
CCD Event
CCD EventCCD Event
Nộp lại chủ đề 3
Nộp lại chủ đề 3Nộp lại chủ đề 3
Nộp lại chủ đề 3
Linh Dang
 
ChuDe3_Nhom16
ChuDe3_Nhom16ChuDe3_Nhom16
ChuDe3_Nhom16Linh Dang
 
Pioneerb araya
Pioneerb arayaPioneerb araya
Pioneerb araya
pramod484
 
Extra marks
Extra     marksExtra     marks
Extra marks
Katerin Colcha
 
Redes sociales
Redes socialesRedes sociales
Redes sociales
Diana Sanchez
 
052913
052913052913
052913
pannomion
 

Viewers also liked (16)

Nắn chỉnh răng cho trẻ
Nắn chỉnh răng cho trẻNắn chỉnh răng cho trẻ
Nắn chỉnh răng cho trẻ
 
5 personal
5 personal5 personal
5 personal
 
Slide share
Slide shareSlide share
Slide share
 
6 tex
6 tex6 tex
6 tex
 
Kelas 2b t1 st3 pb 5 (teguh hidayat)
Kelas 2b t1 st3 pb 5 (teguh hidayat)Kelas 2b t1 st3 pb 5 (teguh hidayat)
Kelas 2b t1 st3 pb 5 (teguh hidayat)
 
4 april
4 april4 april
4 april
 
長門を見分けるそりゅーしょん
長門を見分けるそりゅーしょん長門を見分けるそりゅーしょん
長門を見分けるそりゅーしょん
 
Digiwomen - the art of in mails
Digiwomen - the art of in mailsDigiwomen - the art of in mails
Digiwomen - the art of in mails
 
Quizzes
QuizzesQuizzes
Quizzes
 
CCD Event
CCD EventCCD Event
CCD Event
 
Nộp lại chủ đề 3
Nộp lại chủ đề 3Nộp lại chủ đề 3
Nộp lại chủ đề 3
 
ChuDe3_Nhom16
ChuDe3_Nhom16ChuDe3_Nhom16
ChuDe3_Nhom16
 
Pioneerb araya
Pioneerb arayaPioneerb araya
Pioneerb araya
 
Extra marks
Extra     marksExtra     marks
Extra marks
 
Redes sociales
Redes socialesRedes sociales
Redes sociales
 
052913
052913052913
052913
 

Similar to Docker やってみた

Docker社内勉強会
Docker社内勉強会Docker社内勉強会
Docker社内勉強会
osamu_takezawa
 
コンテナ情報交換会2
コンテナ情報交換会2コンテナ情報交換会2
コンテナ情報交換会2
Masahide Yamamoto
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
DockerハンズオンKazuyuki Mori
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴
Masahito Zembutsu
 
Docker実践入門
Docker実践入門Docker実践入門
Docker実践入門
hiro nemu
 
Docker handson
Docker handsonDocker handson
Docker handson
koda3
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Yuichi Ito
 
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Naoki Nagazumi
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
Dockerクイックツアー
Etsuji Nakai
 
JAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオンJAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオン
Ryo Nakamaru
 
HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法
Masahito Zembutsu
 
Dockerと継続的インテグレーション
Dockerと継続的インテグレーションDockerと継続的インテグレーション
Dockerと継続的インテグレーション
Yahoo!デベロッパーネットワーク
 
Docker超入門
Docker超入門Docker超入門
Docker超入門
Katsunori Kanda
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
啓介 大橋
 
Docker地雷n本勝負
Docker地雷n本勝負Docker地雷n本勝負
Docker地雷n本勝負
RyutaKoide
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
Masahito Zembutsu
 
WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築
Saito5656
 
Webアプリケーション開発者のためのDockerハンズオン
Webアプリケーション開発者のためのDockerハンズオンWebアプリケーション開発者のためのDockerハンズオン
Webアプリケーション開発者のためのDockerハンズオン
虎の穴 開発室
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Masahiro Nagano
 
Circle ci and docker+serverspec
Circle ci and docker+serverspecCircle ci and docker+serverspec
Circle ci and docker+serverspec
Tsuyoshi Yamada
 

Similar to Docker やってみた (20)

Docker社内勉強会
Docker社内勉強会Docker社内勉強会
Docker社内勉強会
 
コンテナ情報交換会2
コンテナ情報交換会2コンテナ情報交換会2
コンテナ情報交換会2
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴
 
Docker実践入門
Docker実践入門Docker実践入門
Docker実践入門
 
Docker handson
Docker handsonDocker handson
Docker handson
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
 
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編Dockerのキホンその2 Docker Compose Swarm Machine 利用編
Dockerのキホンその2 Docker Compose Swarm Machine 利用編
 
Dockerクイックツアー
DockerクイックツアーDockerクイックツアー
Dockerクイックツアー
 
JAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオンJAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオン
 
HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法
 
Dockerと継続的インテグレーション
Dockerと継続的インテグレーションDockerと継続的インテグレーション
Dockerと継続的インテグレーション
 
Docker超入門
Docker超入門Docker超入門
Docker超入門
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
 
Docker地雷n本勝負
Docker地雷n本勝負Docker地雷n本勝負
Docker地雷n本勝負
 
Dockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクルDockerイメージの理解とコンテナのライフサイクル
Dockerイメージの理解とコンテナのライフサイクル
 
WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築
 
Webアプリケーション開発者のためのDockerハンズオン
Webアプリケーション開発者のためのDockerハンズオンWebアプリケーション開発者のためのDockerハンズオン
Webアプリケーション開発者のためのDockerハンズオン
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
 
Circle ci and docker+serverspec
Circle ci and docker+serverspecCircle ci and docker+serverspec
Circle ci and docker+serverspec
 

Docker やってみた