SlideShare a Scribd company logo
1 of 36
2015/4/7 S.Hanai
本資料の記載内容は、私が個人的に調べた内容であり、正式な日本IBMのテストや
レビューを受けておりません。内容について、できる限り正確を期すよう努めてはおり
ますが、いかなる明示または暗黙の保証も責任も負いかねます。本資料の情報は、使
用先の責任において使用されるべきものであることを、あらかじめご了承ください。
 現在βのBluemixのDockerサポートを使って
みる例
 Dockerの仕組み、基本的な操作について
知っていること
 Linuxターミナルの基本的な操作について
知っていること
 Linux用のアプリケーション・コンテナ
 Dockerfileという定義ファイルから、アプリケー
ション稼動環境イメージを作成できる
 Dockerfileさえあれば同じ環境を簡単に配布で
きる
 Bluemixでは、Docker用のprivateなイメージ・レ
ポジトリを持つことができる
 現在はBluemixのDockerはβ版
 現在のところVolumeのサポートは20GBまで
ローカル開発環境
Docker
nginx
Linux
Dockerfile
I社PaaS
Docker
nginx
A社PaaS
Docker
nginx
M社IaaS
Docker
nginx
Linux
G社IaaS
Docker
nginx
Linux
Dockerfileを管理しておけば、様々な
ベンダーのCloudに容易に乗り換え
が可能に
Dockerfileを管理しておけば、ローカ
ルとサーバーとで同一環境が容易に
再現できる
 Dockerを動かす環境としてUbuntu 14.04
64bit版を使用します
 WindowsやMacでもDockerは動作しますが
(boot2docker)、その場合でもVirtualBoxなど
仮想環境を用意した方がセットアップは楽
 既にDocker環境をお持ちの方は「SSH鍵の
設定」までスキップしてください
 サーバー版UbuntuをVirtualBoxにインストー
ルする手順を簡単に解説します
 VirtualBoxは自分でインストールしておいてく
ださい(https://www.virtualbox.org/)
 残りはコマンドラインで実行します
今回はMac上で作業していますが、他の環境
でも基本は同じはずです
 Ubuntu取得(wgetが無い環境ではブラウザで)
wget http://releases.ubuntu.com/14.04.1/ubuntu-14.04.1-server-amd64.iso
 VM作成
VBoxManage createvm --name "Ubuntu 14.04 Server" –register
 メモリ容量設定、インストール用DVD設定
VBoxManage modifyvm "Ubuntu 14.04 Server" --memory 4096 --acpi on --
boot1 dvd
 NATのNIC追加
VBoxManage modifyvm "Ubuntu 14.04 Server" --nic1 nat
 ホストPCとの通信用にHost only networkのNICを追加
VBoxManage hostonlyif create
VBoxManage modifyvm "Ubuntu 14.04 Server" --nic2 hostonly --
hostonlyadapter2 vboxnet0
 ディスク作成(容量はお好きに)
VBoxManage createhd --filename Ubuntu_14_04_Server.vdi --size 30000
 ディスクコントローラ作成
VBoxManage storagectl "Ubuntu 14.04 Server" --name "IDE Controller" --
add ide
 HDDを接続
VBoxManage storageattach "Ubuntu 14.04 Server" --storagectl "IDE
Controller" --port 0 --device 0 --type hdd --medium
Ubuntu_14_04_Server.vdi
 DVDを接続。インストールイメージの場所は自分のものに合わせる
VBoxManage storageattach "Ubuntu 14.04 Server" --storagectl "IDE
Controller" --port 1 --device 0 --type dvddrive --medium /tmp/ubuntu-
14.04.1-server-amd64.iso
 起動
VBoxManage startvm "Ubuntu 14.04 Server"
 Ubuntuのインストーラが起動するのでガイドに従ってインストール。最後にインス
トールアプリケーションの選択画面があるので、OpenSSHを入れておく。他は入
れなくて良い
 インストールが終わったら、DVDを外しておく
VBoxManage modifyvm "Ubuntu 14.04 Server" --boot1 disk
VBoxManage storageattach "Ubuntu 14.04 Server" --storagectl "IDE
Controller" --port 1 --device 0 --type dvddrive --medium none
 Ubuntu側で鍵を作ります
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/you/.ssh/id_rsa): ← Enterキー
Created directory '/home/you/.ssh'. ← Enter
Enter passphrase (empty for no passphrase): ← パスフレーズを入力します
Enter same passphrase again: ← もう一度パスフレーズを入力します
Your identification has been saved in /home/you/.ssh/id_rsa.
Your public key has been saved in /home/you/.ssh/id_rsa.pub.
一種のパスワード。
忘れないように
自分のホームディレク
トリ/.sshに鍵のペア
が生成される
 秘密鍵のホストPCへの転送
VM側で、cat ~/.ssh/id_rsa してクリップボードなどで、自分のPCの~/.ssh/id_rsa
に転送する(VirtualBoxのクリップボードを有効にしておく)
 自分のPC側のパーミッションに注意(.sshは700、id_rsaは400)
chmod 700 ~/.ssh
chmod 400 ~/.ssh/id_rsa
ホスト側がLinux/Macであれば以上で設定完了。Windowsなどのマニアックな環
境の場合はググッてCygwinなりPuttyなりを頑張って設定してください。
 VM側で公開鍵をauthorized_keysにコピー
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
 VM側でhost only interfaceのipを確認
ifconfigを実行。
hostonly adapterのIP
-L9080:localhost:9080はポート転送指定。この例では、
ホストPCのポート9080へのアクセスを、VM側のポート
9080に転送できます。
つまりVM側でポート9080をリッスンするサーバーアプリ
ケーションを立ち上げておいて、ホスト側のブラウザで
http://localhost:9080と入力することでアクセスできるよう
になります
$ sudo -s
$ echo deb https://get.docker.io/ubuntu docker main >
/etc/apt/sources.list.d/docker.list
$ apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
36A1D7869245C8950F966E92D8576A8BA88D21E9
$ apt-get update
$ apt-get install apparmor lxc-docker
Ubuntu上でターミナルで作業
docker実行時に、sudoしなくて良いように自分をdockerグループに入れる
$ usermod -a -G docker shanai
ここは自分のユーザー名
動作確認
$ docker --version
Docker version 1.5.0, build a8a31ef
 Dockerの上にIBMの拡張を行うもの。Python
で書かれている
 基本情報は以下のページ
https://www.ng.bluemix.net/docs/#starters/
index-gentopic3.html#container_install
 現在は以下のファイルでインストール(方法は
次ページ)
https://static-ice.ng.bluemix.net/icecli-
2.0.zip
 pip (Python用のパッケージマネージャ)をイン
ストール
$ sudo apt-get install python-pip
 IBM Container Extensionを導入(引数は前
ページでダウンロードしたファイル)
$ sudo pip install icecli-2.0.zip
 カタログから、Containersを追加
(1)
(2)
ここが自分用のprivate repogitoryなのでメモしておきま
す。ここまで来たら一旦コマンドラインに戻ります
 LocalのDocker上でnginxを動かしてみます
 今回は、こちらを利用させていただきました
https://github.com/dockerfile/nginx
$ docker build -t=dockerfile/nginx github.com/dockerfile/nginx
$ docker run -d -p 9080:80 dockerfile/nginx
コンテナ上では、port 80で動作するため、それを9080ポートに転送します。
VirtualBox内のUbuntuにsshで接続する際にport 9080を転送してあるので、ホスト
側でlocalhost:9080でアクセスできます(次ページ参照)
Mac or Windows
VirtualBox
Ubuntu
Docker
nginx
port 80
port 9080
docker run –d –p 9080:80
sshd
sshport 9080
ssh -L9080:localhost:9080
ブラウザなど
http://localhost:9080
ややこしいですが、こん
な感じです
 ブラウザで確認
 次にBluemixで確認します。まずiceコマンド
でログイン
$ ice login
API endpoint: https://api.ng.bluemix.net
Email> shanai@jp.ibm.com
Password>
Authenticating...
OK
Targeted org shanai@jp.ibm.com
Select a space (or press enter to skip):
1. dev
2. test-space
Space>
Bluemixのユーザ、パスワード
enter空打ち
 privateレポジトリ用にビルド
$ docker build –t registry-ice.ng.bluemix.net/ruimo/nginx
github.com/dockerfile/nginx
メモしておいたprivateレポジト
リのURL
 イメージのupload
$ docker push registry-ice.ng.bluemix.net/ruimo/nginx
Bluemixの混雑具合により非常に時
間がかかることがあります
 イメージのuploadが終わったら、Bluemixに
戻ってブラウザをリロードしてみます
自分がuploadしたイメー
ジが表示される
public ipの割り当てを要求
port 80を公開
適当に名前付ける
NEXTをクリック
変更無しでDEPLOY
起動したらブラウザで、このIPを開く
localの時と同じページが表示された
 Dockerを用いることで、localで作成した環境
をそのままCloudで動作させることができる
 BluemixでDockerを用いる場合、
 Dockerを予めインストールした上にIBM
Container Extension(iceコマンド)をインストール
する必要がある
 Bluemix用のprivateレポジトリにDockerイメージ
をpushしてから実行する必要がある
 ボリューム機能を用いた永続化層の利用
 sshを使ったコンテナへのログイン

More Related Content

What's hot

Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano
 

What's hot (20)

捕鯨!詳解docker
捕鯨!詳解docker捕鯨!詳解docker
捕鯨!詳解docker
 
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
 
Dockerについて
DockerについてDockerについて
Dockerについて
 
コンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud Foundryコンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud Foundry
 
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念
 
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & LinuxはじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & Linux
 
今日から始めるDigitalOcean
今日から始めるDigitalOcean今日から始めるDigitalOcean
今日から始めるDigitalOcean
 
Docker地雷n本勝負
Docker地雷n本勝負Docker地雷n本勝負
Docker地雷n本勝負
 
Jenkins with Docker
Jenkins with DockerJenkins with Docker
Jenkins with Docker
 
JAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオンJAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオン
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
 
とある社内ビックデータ基盤にバッチ用コンテナ基盤を構築してみた
とある社内ビックデータ基盤にバッチ用コンテナ基盤を構築してみたとある社内ビックデータ基盤にバッチ用コンテナ基盤を構築してみた
とある社内ビックデータ基盤にバッチ用コンテナ基盤を構築してみた
 
Docker swarm mode 入門と ECS との比較
Docker swarm mode 入門と ECS との比較Docker swarm mode 入門と ECS との比較
Docker swarm mode 入門と ECS との比較
 
何者(Dockerって)
何者(Dockerって)何者(Dockerって)
何者(Dockerって)
 
Re: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうかRe: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうか
 
開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみた開発環境をVagrantからdockerに移行してみた
開発環境をVagrantからdockerに移行してみた
 
Windowsコンテナ入門
Windowsコンテナ入門Windowsコンテナ入門
Windowsコンテナ入門
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
 
Dockerと継続的インテグレーション
Dockerと継続的インテグレーションDockerと継続的インテグレーション
Dockerと継続的インテグレーション
 

Similar to BluemixでDockerを試してみる

自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
Masahiko Hashimoto
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
Kazuyuki Mori
 

Similar to BluemixでDockerを試してみる (20)

Docker実践入門
Docker実践入門Docker実践入門
Docker実践入門
 
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
 
年納めにDockerやろうず
年納めにDockerやろうず年納めにDockerやろうず
年納めにDockerやろうず
 
Newcomer2020 Docker研修
Newcomer2020 Docker研修Newcomer2020 Docker研修
Newcomer2020 Docker研修
 
コマンドラインツールとしてのDocker
コマンドラインツールとしてのDockerコマンドラインツールとしてのDocker
コマンドラインツールとしてのDocker
 
明日からはじめられる Docker + さくらvpsを使った開発環境構築
明日からはじめられる Docker + さくらvpsを使った開発環境構築明日からはじめられる Docker + さくらvpsを使った開発環境構築
明日からはじめられる Docker + さくらvpsを使った開発環境構築
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
 
このべん第二回 ~「できない子ほどかわいくしたい!ConoHa補完計画」勉強会
このべん第二回 ~「できない子ほどかわいくしたい!ConoHa補完計画」勉強会このべん第二回 ~「できない子ほどかわいくしたい!ConoHa補完計画」勉強会
このべん第二回 ~「できない子ほどかわいくしたい!ConoHa補完計画」勉強会
 
Docker handson
Docker handsonDocker handson
Docker handson
 
DockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみようDockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみよう
 
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門
 
Docker講習会資料
Docker講習会資料Docker講習会資料
Docker講習会資料
 
20230128.pptx
20230128.pptx20230128.pptx
20230128.pptx
 
Vagrant on SoftLayer
Vagrant on SoftLayerVagrant on SoftLayer
Vagrant on SoftLayer
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
 
LAMP環境にDocker環境を追加してみた
LAMP環境にDocker環境を追加してみたLAMP環境にDocker環境を追加してみた
LAMP環境にDocker環境を追加してみた
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
 
Windows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみるWindows Server 2019 で Container を使ってみる
Windows Server 2019 で Container を使ってみる
 

BluemixでDockerを試してみる