話題のDockerを
使ってみよう!
GMOアドマーケティング インフラ開発部
Ryo Adachi
アジェンダ
• 自己紹介
• Dockerとは
• Docker-machineとは
• 実際にMacにDocker環境を構築してみる
• Dockerの構成
• まとめ
自己紹介
• あだ名はあだちん。今年で27歳(Apple信者)
• 高校は国際系だったので外国語しかやってません
• 東洋大学 総合情報学部(Linuxを触ってからサーバ管理者になりたいと…)
• インフラエンジニアの経験はまだ二年くらい
• 社内SEとかパソコン直す仕事を一年くらい
• 個人のブログが月間4万PVになりました(・∀・)
初心者に大好評 アリガタイ
• 土日は友人と勉強会やったり、サービス作ろうなどなど
• 音楽はHIPHOPでイベントとかやってます⇛エンジニアぽくないと言われる
自分のインフラ担当
• 「AkaNe」「KUDAN」インフラ担当(adcloud系
• テックブログのサーバ運営
• 制作チームと一緒にサーバ構築
• シェルスクリプト(bash!!)
• 基本24時間何かあったら対応しています
• なんでも屋(PC系)未熟者で毎日勉強
アドクラウド部署内にて
こんな声が・・・・
先輩方が
• 開発環境簡単に作りたいよね・・・
• 「Dockerいいんじゃないですか!」
• 開発環境作ってみたが
めんどくさい・・・工数かけたくない!
• うおおおおおおおおおおお(・∀・)
アドクラウド部署では
Dockerを導入中!
Dockerとは
• クジラです🐳
• Linuxのコンテナ系技術を利用して
アプリケーションのビルド、デプロイ、実行を
行うコンテナ管理ソフトウェア
• Go言語で作られてる
今までの仮想環境
• ハイパーバイザー、ホスト型・・・
• OSを稼働しないといけない、時間かかりすぎ
• CPU、メモリ、ディスクのリソース消費しすぎ
• じゃあDocker使うとどうなるのかね!?
コンテナ vs VM
• 驚くほどサーバの展開や起動が早い
• オーバーヘッドがない(負荷)
• サーバに優しい
• Dockerを簡単に
言うと!?
やたら軽くて速い
インフラコンテナ技術!
そういえばみなさん
検証用環境ってどうしてます?
たぶんステージングとか
開発サーバとかありますが
結局すぐ壊してすぐ作成できる
Vagrantが主流
かつてのMyローカル仮想環境
• Vagrantを活用した
• 起動遅くない?(オワコ…)
• IP指定して被ってるとなんかエラー起きる
• とりあえず管理がしにくい
• Macの動作が重くなる⇛ツライ
• レシピあるけど当てるまで時間かかる⇛動かないとか…
MacにDocker
入れればいいのでは!
?
開発用コンテナ作っち
ゃえばいいのでは!?
簡単に検証環境
作りたくないですか!
?
もうあなたはパッケージを
当てたりする必要はない!
新しいメンバーが来たら
コンテナをダウンロードして
起動するだけ!
Docker-machineとは
• 去年くらい(2015)
• 簡単にDocker環境を構築することができる
• Mac、AWS、Virtualbox上、ESXiなど
• もちろんWindowsにも対応
Docker-machineのイメージ
Macの中身
Docker-machineインストール
• adachin-mac$ brew install docker
adachin-mac$ curl -L
https://github.com/docker/machine/releases/downl
oad/v0.2.0/docker-machine_darwin-amd64 >
/usr/local/bin/docker-machine
adachin-mac$ chmod +x /usr/local/bin/docker-
machine
Dockerホストの作成
• adachin-mac$ docker-machine create --driver virtualbox test-
docker
• ※virtualboxは4系じゃないとエラー出ます。
• 1分もかからずに作成されます
• adachin-mac$ eval "$(docker-machine env test-docker)”
• ↑このコマンド打て!と出るので叩きます
• .bash__profileに書くと毎回叩かなくて済む
Dockerホストにログイン
• adachin-mac$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
test-docker * virtualbox Running tcp://192.168.xxx.xxx:2376 ⇛できてる!
• adachin-mac$ docker-machine ssh
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
______ o __/
  __/
__________/
| |__ ___ ___ | |_|___  __| | ___ ___| | _____ _ __
| '_  / _  / _ | __| __) / _` |/ _  / __| |/ / _  '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| < __/ |
|_.__/ ___/ ___/ __|_______,_|___/ ___|_|____|_|
Boot2Docker version 1.10.2, build master : 611be10 - Mon Feb 22 22:47:06 UTC 2016
Docker version 1.10.2, build c3959b1
• ちなみに他のホストに入りたい場合は$ docker-machine ssh ホスト名
コンテナの作成
• docker@test-docker:~$ sudo docker pull
centos:6
• とりあえずCentOS6をダウンロード
• docker@test-docker:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 6 d0a31e3494fe xx hours ago 228.9 MB
コンテナにログイン
• docker@test-docker:~$ sudo docker run -i -t
centos:6 /bin/bash
[root@39fc4bc343ed /]#
• え?起動速すぎ、IP自動で振り分けられてる
• 実際にやって見せましょう
Dockerの仕組み
(apache,mysql,couch)
やたら速いということが
お分かり頂けただろうか
でもこのままだと
パッケージ手動で入れなおすの?
自動化したいYO
Dockerfileの作成
• Dockerfileを使ってパッケージ系を自動化
• $ cd
$ mkdir dockerfile_nginx
$ cd dockerfile_nginx
$ vi Dockerfile
Dockerfileの中身
• # Getting Base Image
FROM centos:6
# start install nginx
RUN yum update -y
RUN yum install -y vim
RUN yum install -y curl
RUN yum install -y epel-release
RUN rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
RUN yum install -y nginx
RUN /etc/init.d/nginx start
RUN chkconfig nginx on
# start install ssh
RUN yum install -y openssh-server
RUN yum install -y openssh-clients
RUN sed -ri 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config
RUN mkdir ~/.ssh
RUN chmod 700 ~/.ssh
RUN touch ~/.ssh/authorized_keys
RUN chmod 600 ~/.ssh/authorized_keys
• # Port
EXPOSE 22 80
# echo running
CMD ["echo", "running!"]
ビルド
• $ docker build -t adachi/nginx_centos6:latest .
• $ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
adachin/nginx_centos6 latest 4e0eee40ab6a 2minutes ago
609.5 MB
オリジナルコンテナ起動
• $ docker run -it -p 8080:80 adachin/nginx_centos6:latest /bin/bash
[root@da87aa58783f /]#
コンテナを扱うにあたって
• docker run
コンテナ起動
• docker commit -m “memo” ID
Mac再起動後消えます(注意)
で!
オリジナルコンテナを
みんなにも使ってもらいた
く
ないか!?
DockerHub
• GitHubのようなもので
自分が作ったコンテナをpushできる
• cloneすれば、すぐ環境が使用できる
まとめ
• もう少し公式読んで理解したいところ
(まだまだ理解不足)
• コンテナ10個作って起動していますが、まったく
Macが重くない
• Macの人はぜひDocker-machineを入れてみては?
• 参考:http://adachin.server-
on.net/wordpress/?p=2448
ご清聴ありがとうござ
いました!!!!!

More Related Content

PPTX
Alpine linuxを触ってみよう
PPTX
Ansibleを使ってdockerコンテナをプロビジョニングする
PDF
Vagrant & Dockerによるイマドキの開発環境構築
PPTX
開発環境をVagrantからdockerに移行してみた
PDF
【dots. IT勉強会】開発環境のDocker化
PDF
はてなにおける継続的デプロイメントの現状と Docker の導入
PPTX
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE
Alpine linuxを触ってみよう
Ansibleを使ってdockerコンテナをプロビジョニングする
Vagrant & Dockerによるイマドキの開発環境構築
開発環境をVagrantからdockerに移行してみた
【dots. IT勉強会】開発環境のDocker化
はてなにおける継続的デプロイメントの現状と Docker の導入
~Dockerfileの開発を劇的に楽にする~ Dockerfile開発環境 EDGE

What's hot (20)

PDF
ビルドサーバで使うDocker
PDF
Ansible 2.0を使って組む kubernetesクラスタ vol.1
PDF
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
PDF
Dockerと継続的インテグレーション
PPTX
僕の考えた最強の開発環境(笑)
PDF
VagrantユーザのためのDocker入門
PPTX
Ansible ではじめるインフラのコード化入門
PDF
Ansible 2.0 のサマライズとこれから
PDF
コンテナ時代だからこそ要注目! Cloud Foundry
PDF
コマンドラインツールとしてのDocker
PDF
Walter ファミリーの紹介 at Shibuya.go#1
PDF
Vagrant環境のAnsibleを速くしたい
PPTX
Appsody でnodejsのアプリを立ち上げよう!
PDF
Docker lifecycle event hooks
PPTX
自作アプリをデプロイしてみた with Docker
PDF
ECS-CLI in Action
PDF
Ansible ではじめるサーバ作業の自動化
PDF
割と新し目の Open shift origin で作る自宅 paas 作成記
PDF
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
PDF
新しいOpenShiftのしくみを調べてみた
ビルドサーバで使うDocker
Ansible 2.0を使って組む kubernetesクラスタ vol.1
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
Dockerと継続的インテグレーション
僕の考えた最強の開発環境(笑)
VagrantユーザのためのDocker入門
Ansible ではじめるインフラのコード化入門
Ansible 2.0 のサマライズとこれから
コンテナ時代だからこそ要注目! Cloud Foundry
コマンドラインツールとしてのDocker
Walter ファミリーの紹介 at Shibuya.go#1
Vagrant環境のAnsibleを速くしたい
Appsody でnodejsのアプリを立ち上げよう!
Docker lifecycle event hooks
自作アプリをデプロイしてみた with Docker
ECS-CLI in Action
Ansible ではじめるサーバ作業の自動化
割と新し目の Open shift origin で作る自宅 paas 作成記
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
新しいOpenShiftのしくみを調べてみた
Ad

Viewers also liked (11)

PDF
Dockerを活用したリクルートグループ開発基盤の構築
PDF
Dockerクイックツアー
PDF
インフラエンジニアのためのRancherを使ったDocker運用入門
PDF
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
PDF
JavaScript難読化読経
PDF
How to deploy PHP projects with docker
PDF
はじめてのdocker
PDF
Dockerを支える技術
PDF
Docker 基本のおさらい
PDF
Docker入門: コンテナ型仮想化技術の仕組みと使い方
PDF
DockerでWordPressサイトを開発してみよう
Dockerを活用したリクルートグループ開発基盤の構築
Dockerクイックツアー
インフラエンジニアのためのRancherを使ったDocker運用入門
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
JavaScript難読化読経
How to deploy PHP projects with docker
はじめてのdocker
Dockerを支える技術
Docker 基本のおさらい
Docker入門: コンテナ型仮想化技術の仕組みと使い方
DockerでWordPressサイトを開発してみよう
Ad

Similar to Dockerを使ってみよう (20)

PPTX
Newcomer2020 Docker研修
PDF
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
PPTX
Docker勉強会
PPTX
2150117 infrastructure.nagoya
PPTX
明日からはじめられる Docker + さくらvpsを使った開発環境構築
PDF
Dockerで開発環境をデリバる
PDF
Docker実践入門
PDF
捕鯨!詳解docker
PDF
Webアプリケーション開発者のためのDockerハンズオン20210519
PDF
Webアプリケーション開発者のためのDockerハンズオン
PPTX
20180925 docker ecs_fargate
PPTX
Pasonatech docker hands on
PPTX
Dockerを徹底活用したSoftLayer環境にお けるディープラーニング開発環境の構築 - Alpaca Cloud Days発表資料
PPTX
Hotoの奇妙な挑戦 〜 Swiftクルセイダーズ 〜
PDF
Docker初級者によるdocker布教
PDF
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
PDF
Docker基礎+docker0.9, 0.10概要
PDF
Dockerfile を書くためのベストプラクティス解説編
PDF
2014.11.01 Dockerことはじめ
PDF
AngularJSを通してDockerと触れ合った
Newcomer2020 Docker研修
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Docker勉強会
2150117 infrastructure.nagoya
明日からはじめられる Docker + さくらvpsを使った開発環境構築
Dockerで開発環境をデリバる
Docker実践入門
捕鯨!詳解docker
Webアプリケーション開発者のためのDockerハンズオン20210519
Webアプリケーション開発者のためのDockerハンズオン
20180925 docker ecs_fargate
Pasonatech docker hands on
Dockerを徹底活用したSoftLayer環境にお けるディープラーニング開発環境の構築 - Alpaca Cloud Days発表資料
Hotoの奇妙な挑戦 〜 Swiftクルセイダーズ 〜
Docker初級者によるdocker布教
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker基礎+docker0.9, 0.10概要
Dockerfile を書くためのベストプラクティス解説編
2014.11.01 Dockerことはじめ
AngularJSを通してDockerと触れ合った

Dockerを使ってみよう