Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
「パブリッククラウド」を利用した初心者向けDockerハンズオン
Search
横田真俊(wslash)
November 06, 2015
Technology
5
1.1k
「パブリッククラウド」を利用した初心者向けDockerハンズオン
KOF2015に実施した「さくらのクラウド」を利用した初心者向けのDockerハンズオンの資料です。
横田真俊(wslash)
November 06, 2015
Tweet
Share
More Decks by 横田真俊(wslash)
See All by 横田真俊(wslash)
「ssmjpで喋ったことのない私が、ssmjpでプレゼンデビューするためのテクニックを話す」
masatoshi
1
2.7k
分散SNSの歴史を雑にしゃべる
masatoshi
2
1.3k
さくらインターネットとマストドン
masatoshi
2
2.2k
マストドンを「さくらのクラウド」で素早く立ち上げる
masatoshi
0
620
さくらインターネットのIPv6対応状況について(Ver 九州インフラ交流勉強会(Kixs) Vol.004」)
masatoshi
0
620
「はじめて触るDocker入門」
masatoshi
1
490
Dockerに触ってみよう
masatoshi
2
3.8k
プレゼン初心者に ありがちな アンチパターン 野望篇
masatoshi
2
190
さくらインターネットのサービスを例にしたクラウドサービスの作り方
masatoshi
0
550
Other Decks in Technology
See All in Technology
バクラクのドキュメント解析技術と実データにおける課題 / layerx-ccc-winter-2024
shimacos
2
1.1k
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
530
プロダクト開発を加速させるためのQA文化の築き方 / How to build QA culture to accelerate product development
mii3king
1
260
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
5
38k
Fanstaの1年を大解剖! 一人SREはどこまでできるのか!?
syossan27
2
160
10分で学ぶKubernetesコンテナセキュリティ/10min-k8s-container-sec
mochizuki875
3
330
Postman と API セキュリティ / Postman and API Security
yokawasa
0
200
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
180
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
2
310
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
190
【re:Invent 2024 アプデ】 Prompt Routing の紹介
champ
0
140
C++26 エラー性動作
faithandbrave
2
720
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
88
5.7k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Writing Fast Ruby
sferik
628
61k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
97
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
GitHub's CSS Performance
jonrohan
1030
460k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
A better future with KSS
kneath
238
17k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
Transcript
(C)Copyright 1996-2014 SAKURA Internet Inc. さくらインターネット 横田真俊(@wslash) 2015/11/06
2 氏名 横田真俊(@Wslash) 「さくらのクラウド」の企画担当を やっております 年に50回程度の講演・ハンズオンを 行っております 左のアイコンで、ツイッターを やっていますのでお気軽に お声がけください
3 Amazon EC2/S3 入門 今は、さくらのクラウド企画担当 をやっていますが、昔はこんな本 を書いていました
4 ツイッターやFacebookなど ソーシャルメディアの本 を5冊ほど書いてます
「実践的な内容」と言うよりは Dockerに慣れてもらうのが目的です 5
6 Dockerを動かすサーバを「さくらのクラウド」を利用して 作成をいたします Dockerの基本的なコマンドを実際に叩いて学習して、最終 的にWordPressのインストールを行っていただきます 2万円分の無償クーポンを配布します。無料で本日の復習が 可能です
(6)DockerfileからDockerイメージを作ってみよう (5)Docker上にWordPressをインストールしてみよう (4)Dockerコンテナ間のネットワークを見てみよう (3)Dockerコンテナを動かしてみよう (2)Dockerをインストールしてみよう (1)サーバを作成してみよう 7
(C)Copyright 1996-2014 SAKURA Internet Inc.
9 「コントロールパネル」にログインするには、Webサイトの上部にある 「コントロールパネル」をクリックしてください
10 「コントロールパネル」にログインしたら「さくらのクラウドユーザ」 としてログインの箇所にある「ユーザコード」「会員ID」 「パスワード」を入力してください
11 無事にログインできたら、このような画面が表示されますので 「さくらのクラウド(IaaS)」をクリックしてください
12 さくらのクラウド(IaaS) をクリックすると このような画面が表示されます
13 左上で、使用ゾーンの切り替えができます。
(C)Copyright 1996-2014 SAKURA Internet Inc.
15 Dockerをインストールするサーバを作成します、CPU 1ギガ、メモリ 1GB、 ディスク SSD 20GB、NIC 1のものでOSはCent OS 6.7の物を作成してみま
しょう
16 ・メインメニューより「サーバ」をクリック ・その後「追加」をクリックすると「サーバ作成画面」に移動します
17 ・右上の「シンプルモード」の右上をチェックボタンを外してサーバ作成を 通常モードにします。
18 ・右上の「シンプルモード」の右上をチェックボタンを外してサーバ作成を 通常モードにします。
19 「1.サーバプラン」の項目より サーバに割り当てる仮想コアの数とメモリの容量を選択します。
20 ▪ CPU サーバに搭載するCPU個数を指定します。料金表のとおりCPU個数に応じて搭載 可能なメモリ数が異なるため、選択できるメモリ数も自動的に変化します ▪ メモリ サーバに搭載するメモリ数を指定します。CPUの搭載数に応じて選択可能なメモ リ数も変化します また、42種類のサーバプラン一覧から
リスト形式で選択することも可能です。
21 「ディスク」の項目よりディスクの種類や“アーカイブ”などを選択できます “アーカイブ”は初期設定済みのOSイメージで、選択すればすぐにサーバが使 えます。今回はCentOS 6.7を選択してください。
22 ▪ ディスク サーバに接続する1台目のディスクについて選択します • 新規ディスクを作成 サーバ作成と同時に新たなディスクを作成します。この場合作 成時にディスクが自動的に接続された状態となります。今回は こちらを選択します •
既存ディスクを接続 作成済みのディスクを接続します。このボタンをクリックする とディスク選択のリストが表示され、接続したい既存のディス クを選択することができます • ディスクレス(なし) サーバにディスクを接続しません。ブータブルISOイメージディ スクを使用する場合などに選択します
▪ ディスクソース ディスク作成時、ディスクの内容をコピーする元を選択します • ディスクプラン SSDプランかHDDプランにするかを選択できます。 • アーカイブ ディスクの内容をアーカイブからコピーします。アーカイブはCentOSや FreeBSDなどがインストールされた状態のものが「パブリックアーカイブ」とし
て公開されているほか、自身で作成したアーカイブを選択可能です。 • 既存ディスクをコピー 作成済みのディスクから内容をコピーします • ブランク ディスクを空のままにしておきます。ISOイメージからOSをインストールする場 合はこちらを選択します ▪ アーカイブ選択 / ディスク選択 「ディスクソース」で「アーカイブ」もしくは「ディスク」を選択した際にコピー元 としたいソースを選択します 23
24 「3.NIC」の項目より1つ目のNICを直接インターネットへ接続させるか、作 成済みの仮想スイッチに接続させるかを選択できます。
25 ▪ NIC サーバに搭載する1枚目のNICについて選択します • インターネットに接続 直接インターネットに接続する場合に選択します。さくらのクラウド共用セ グメントに接続されると同時にIPアドレスが1個割り当てられます • スイッチに接続
作成済みのスイッチに接続する場合に選択します • 切断 いずれのネットワークにも接続しない場合に選択します ▪ インターネットに接続 / スイッチに接続 前項「NIC」で、「インターネットに接続」もしくは「スイッチに接続」を選択 した場合に、その接続先の設定を行います
26 「4.ディスクの修正」の項目より“パスワード”や“ホスト名”を設定できます。 パスワードの変わりに公開鍵を使った認証や、スタートアップスクリプトを 利用したサーバのセットアップの設定も可能です
27 ▪パスワード デフォルトで設定されるユーザのパスワードを変更します。 CentOSの場合、rootパスワードがここに入力したパスワー ドに修正されます ▪ホスト名 サーバに設定するホスト名を入力します ▪公開鍵 サーバに公開鍵を設定する際、「入力」もしくは「選択」 を選択します
▪スタートアップスクリプト 詳細は後述します
28 「5.サーバの情報」の項目よりサーバを管理しやすくするための“名前”や“説 明”、“アイコン”を設定することができます。 “タグ“にはサーバに特殊な機能を付与する特殊タグがあります、詳細は http://cloud-news.sakura.ad.jp/special-tags/をご覧ください
29 ▪ 名前 サーバの名前を設定します。サーバ一覧画面の名前欄に表示されます。サーバの詳細画面 で確認や編集が可能です ▪ 説明 サーバの説明を記入します。サーバの詳細画面で確認や編集が可能です ▪ タグ
サーバにタグを付与し、サーバ一覧画面で素早くタグごとにサーバを表示せることができ ます。サーバの役割やOSなどを入力すると便利です ▪ アイコン サーバ一覧画面で表示するアイコンを選択します。アイコンはもともと用意されているも ののほか、独自のものを追加できます。独自アイコンの追加は、コントロールパネル右上 の「設定」ボタンで表示される設定画面のサイドメニュー「アイコン」より行うことがで きま ▪ etc. すぐに起動 サーバの作成完了後は通常シャットダウンされた状態ですが、このチェックを有効にする ことすで作成完了後すぐに起動を開始します
30 ・「作成」を押すと「サーバ追加」画面が表示されます。 数分でサーバの作成が完了いたします
31 ・サーバの作成が完了すると、右下に「サーバ追加 完了」と表示がでます。 ここをクリックしてください
32 「クリックしてサーバを表示」をクリックすると、作成したサーバの情報が 表示されます。(表示されない場合は「情報」をクリックしてください)
33 「電源操作」タブをクリックすると、サーバの起動やシャットダウンが選択 できます。サーバを起動するには「起動」を選択します。
34 ・サーバの起動すると上記の画面がポップアップされます。「成功」が表示 されました「閉じる」をクリックしてください
(C)Copyright 1996-2014 SAKURA Internet Inc.
36 ブラウザだけで「仮想データセンター」を操作 ブラウザから、サーバ・スイッチなど「仮想データセンター」を操作 物理サーバとも接続できる 高パフォーマンスを持つ物理サーバとも接続できます 料金プランは1つ、自動的に最安値にセット 利用開始から20日未満は日割り、20日の時点で月額料金が適用されます
37 「開発者志向のシンプルクラウド」 何の変哲もないIaaS型クラウドを 圧倒的なコストパフォーマンスで提供する
• サーバの作成 • サーバのプラン変更(スケールアップ/ダウン) • クローン(サーバの複製) • NICの追加(10個) • DNS逆引きレコード設定
• ロードバランサ(通常/ハイスペック) • ディスクの作成・追加 • アーカイブ(スナップショット)の作成 • パケットフィルタの作成 • 仮想スイッチの作成 38 一般的な「クラウド(=IaaS)」で 「できる事」はほぼできます。
39 ブラウザからまるでデータセンターにいるように、サーバや スイッチのセットアップが可能です
40 リモートスクリーン機能を使えば、ブラウザからサーバにア クセスできます。今日はこれを使ってDockerをいじります。
41 ハイブリッド接続を利用すれば「物理データセンター」であ る「さくらの専用サーバ」や「リモートハウジング」と接続 可能
42 「標準プラン」でも一般的なHDDよりも性能が良く、同価格 で提供している20GBのSSDはさらにパフォーマンスが優れ てます
43 CPUコア数とメモリ容量を選択してプランを選択。より自由度 の高いプラン選定が可能
44 1日76円からサーバを提供(ディスク料金別)
45 ご利用開始から20日未満の料金については日割りに、それ以 降は月額料金が適用されます。自動的に一番お得な料金が設 定できます
46 1時間あたり最安値で7円から使用可能、メモリ128ギガのモン スターマシンも1時間 500円未満で利用可能(ディスク別)
47 基本時間課金となり10時間以上利用すると、1日の日割料 金に固定される。
48 データ転送量による従量課金がないため、事前に料金計算が できます。「クラウド破産」することもなく、ご利用いただ けます 他社同等プラン (Small) さくらのクラウド (1コア2GB) 料金比較イメージ 従量課金分
データ転送料、 I/O課金など
49 直近で追加した機能 ・ゾーン間接続機能 ・Windows VDIサービス提供開始 ・アーカイブのゾーン間コピー機能提供開始 ・スタートアップスクリプト機能 ・ブートデバイス順序指定タグ ・ルータ+スイッチのIPv6対応(β) ・準仮想化ネットワークドライバ対応
・パケットフィルタ機能強化 ・スタートアップスクリプト ・IPv6 DNS逆引き機能 ・ロードバランサハイスペックプラン ・SSD(250GB、500GB)追加 ・CoreOS対応 ・VPCルータ ・テストゾーンの追加
50 注目の機能
51 サーバを作成する際、シェルスクリプトを記述した「スター トアップスクリプト」を選択することにより、実行する機能 です。サーバ作成時にアプリのインストールなどが行えます
52 VPCルータは、VPC(Virtual Private Cloud)環境を簡単に構 築できる仮想ルータアプライアンスです。VPN接続やNAT機 能などがご利用いただけます。
53 テスト用ゾーン「Sandboxゾーン」では、無償でAPI動作確 認が可能です。APIを使用して自動操作するなどの独自スク リプトの動作確認用に最適です。
54 Dockerに対応した軽量OS「CoreOS」に対応
55 2段階認証に対応し、よりセキュアにログインができます。
56 石狩だけでなく東京リージョンもリリースいたしました
(C)Copyright 1996-2014 SAKURA Internet Inc.
58 ホストOSの上で「仮想化ソフト」を動かすタイプ ホストOSとアプリを共存できるのでPCからの個人利用の形 で多いが、ホストの負荷が大きい ホスト形仮想化ソフト (VirtualBOXなど) OS (1) OS(2) OS(3)
アプリ アプリ アプリ ホストOS(Windows/Linuxなど) アプリ
59 ホストOSの代わりに「ハイパーバイザー」が仮想サーバを 制御する。ホストサーバ全体を仮想化で利用するため、ホス トOSを経由しないためホストOS型よりレスポンスが良い ハイパーバイザー (VMWareなど) OS (1) OS(2) OS(3)
アプリ アプリ アプリ
60 OSの代わりに各コンテナがアプリを稼動させます。今まで より一番ホストマシンの処理負荷が低い コンテナ管理ソフトウェア (Dockerなど) コンテナ(1) コンテナ(2) コンテナ(3) アプリ アプリ
アプリ ホストOS(Linux) アプリ
• 処理速度が速い → OSやハードウェアを仮想化していないためオーバーヘッド が少なく処理能力が早い • メモリやディスクの消費量をおさえられる → それぞれにカーネルを持たないためメモリ/ディスクの 消費量をおさえられる。
• ポータビリティ → 環境を意識せず使える 61
62 何がうれしいのか?
▪検証・使い捨て環境がすぐに使える → 「低コスト」かつ「コマンド1発」で利用できる。 ▪環境の統一化 → 開発・運用・ステージングと色々な「環境」を用意せずに コンテナに統一できる。 ▪クラウド時代のバズワードが手軽に実現 → イミュータブル、オートスケーリング
etc… 63
(C)Copyright 1996-2014 SAKURA Internet Inc.
65 ブラウザ内でサーバの操作ができます。作成したサーバの 「コンソール」をクリックしてください。
66 画面中央をクリックすると、文字入力ができるようになりま す。rootと先ほど入力したパスワードを入れてください
67 「ペースト」を選択すると、文字列のペーストも可能です
(C)Copyright 1996-2014 SAKURA Internet Inc.
69 「yum install docker-io」とコマンドを入れるとDockerのインストールが はじまります。色々と聞かれますが、とりあえず「y」を入力してくださ い。 yum install docker-io
70 「service docker start」とコマンドを入れるとDockerが動きます service docker start
71 「docker version」と入力してDockerのバージョンが表示されれば、 Dockerが正常にインストールされています。 docker version
72 コンテナを起動する「docker run」
▪docker run コマンド → 指定したイメージのコンテナを起動する ▪構文 → docker run イメージ
[オプション][コマンド][引数] ▪オプション → -d バックグランドで実行 → -i コンテナの標準入力を開く → -t ttyを確保する → -p ポートフォワード 73
74 ちゃんとDockerが動くか「hello world」を動かしてみたいと思います。 上記のコマンドを入力してください。 docker run hello-world
75 「hello world」の入力が終わると「docker run –it ubuntu bash」を試し てみろ、と言われているので、これを入力してみましょう。
76 Dockerの上でUbuntuを入れて、コマンド入力ができるようにしてみる。 「-it」で、コンテナの中で入力できるようになる。 docker run -it ubuntu bash
Dockerを利用することでCentOS上でubuntuを利 用することができます。 ただし、このubuntuには、ほとんどコマンドが 入っていません。 例えば「curl ifconfig.me/ip」を叩くと、なにも 表示されないと表示されます。 77
78
79 「apt-get update」を叩いた後「apt-get install curl」で「curl」をインス トールしてください。インストール中、色々と聞かれますがとりあえずyを 押して下さい。 apt-get update apt-get
install curl (1) (2)
80 「curl ifconfig.me/ip」でIPを表示してみる。 (つながらなければ、curl google.com と入れてください) curl ifconfig.me/ip
81 「exit」をコマンドを叩くとコンテナから出て、このコンテナが止る。 コンテナが止ると今までやった作業(apt-getとか)は保存されない。 exit
82 再度コンテナを起動して「curl ifconfig.me/ip」を入力してください。これ を入力しても、先ほどのように実行されないはずです。 docker run -it ubuntu bash curl
ifconfig.me/ip (1) (2)
• exitするだけで、今までの動作が消えてしまう ので、このままだと使えないです。 • 次はバックグランドでDockerのコンテナを利用 する方法について解説します。 83
84 バッググランドでコンテナを動かす
85 上記のコンテナを起動すると、時刻を1秒ごとに表示するコンテナが表示さ れる。しばらく動かしてみて「ctrl + C」で止めてください。 docker run jpetazzo/clock
86 コンテナをバックグランドで動かすにはrunコマンドに「-d」をつける。 上記のコマンドを入力すると、先ほどのように時刻は表示されずバックグラ ンドで動いており、ログは記録されている。 docker run -d jpetazzo/clock
87 docker psでコンテナを確認する
▪docker ps コマンド → コンテナIDを確認するためコマンド。これでわかるものは ・コンテナのID ・コンテナがどのイメージから作られたのか? ・コンテナが動いてどのぐらい経過したのか? ▪オプション →
-l 直近(latest)のコンテナの情報を表示 → -q コンテナのショートIDのみ表示 → -a 停止しているコンテナも含め全て(all)表示 88
89 docker psを入力すると、現在動いているコンテナの情報が見られる docker ps
90 「docker ps –l」で直近に操作したコンテナを表示し「docker ps -q」でコ ンテナのショートIDが表示される。 docker ps -l
docker ps -q (1) (2)
91 docker logsでコンテナ のログを確認する
▪docker logs コマンド → コンテナの標準出力の内容をコンテナ外から確認する ▪オプション → -tail ログの最後数行が見られるようになる →
-follow リアルタイムでログが確認できる。 92
93 「docker logs(コンテナのID)」を入力すると、コンテナの標準出力が見 られる。先ほどバックグランドで動かした「 jpetazzo/clock 」のコンテナIDを 入力してみましょう。 docker logs (コンテナのID)
94 「-- tail」オプションを使うことで、ログの最後数行が見られるようにな る。 例えば、(1)のコマンドはログの最後3行を出すコマンドとなる。 docker logs --tail 3 (コンテナのID)
95 docker logs --tail 1 --follow (コンテナのID) Unixコマンドのtail -fのようにfollowオプションをつけることでリアルタイ ムでログを確認することができる。上記のコマンドを入力するとリアルタイ
ムでログが表示される。止めるには「Ctrl + C」で
96 docker kill、docker stopで コンテナを止める
97 「-d」で動作したコンテナを止めるにはkillかstopを使う。今回はkillコマン ドで、先ほどのコンテナを止めてください。 docker kill (コンテナのID) docker stop (コンテナのID) (1)
(2)
98 「docker ps」で先ほど止めたコンテナのIDが無いことを確認してください 「docker ps –a」で止めたコンテナも確認できます。 docker ps docker ps
-a (1) (2)
(C)Copyright 1996-2014 SAKURA Internet Inc.
100 Docker上のWebサーバを例に、 Dockerのネットワークを見てみます
101 docker run -d -P jpetazzo/web 基礎的なWebサーバである「jpetazzo/web」を動かします。「-P」オプ ションをつけることで、他のコンピュータからの接続ができます。
102 「jpetazzo/web」を動かしたら「docker ps」で動いているポートを確認い たします。 このコンテナは49153ポートで受けて、そこから8080番ポー トで動いていることがわかります。
103 Webブラウザで「(このサーバのIPアドレス):49513」を入力すると Hellow,Worldが表示される。
104 「さくらのクラウド」で作成したサーバのIPアドレスを確認するには、クラ ウドのコントロールパネルの「NIC」を確認する。
105 docker run -it -p 80:8000 jpetazzo/web 上記のコマンドを入力すると、80番ポートにマッピングされます。
106 Webブラウザで「(このサーバのIPアドレス)」を入力するとHellow,World が表示されます。
107 確認できたら、このコンテナを終了してみましょう。 リモートスクリーンで「ctrl + c」を入力するとコンテナが終了します
(C)Copyright 1996-2014 SAKURA Internet Inc.
109 いよいよ実際にソフトを インストールしてみましょう
110 上記のコマンドを入力すると、色々とダウンロードがはじまる。 docker run wordpress
111 エラーが出てWordPressが起動できない、どうやらMySQLが必要な様子。 というわけで、MySQLのコンテナを持ってくる。
112 「docker pull [イメージ名]」でコンテナのダウンロードがはじまります。 ちなみに「docker run [イメージ名]」をした時にローカルにコンテナイメー ジがないと自動的にダウンロードされます docker pull
mysql
113 わかりやすいように –eを利用することでMySQLのパスワードの設定が可能 となります。(パスワード)には、任意のパスワードを入れてください docker run --name mysql -e MYSQL_ROOT_PASSWORD=(パスワード)
-d mysql
114 上記のコマンドを入力するとWordPressが立ち上がります。「-- link」は、- -link <連携したいコンテナ名>:<エイリアス名>オプションで新しいコンテ ナを起動すると,そのコンテナ内で連携したいコンテナのポート番号やIPを 環境変数として利用できるという機能です docker run --name
wordpress --link mysql:mysql -p 80:80 wordpress
115 インストールに成功するとこんな画面が出てきます。
116
117 「-d」を指定していないので「ctrl + c」を入力すると、このコンテナ自体 も停止してしまいます。 それでは、次はバッグランドでWordPressを起動してみましょう。 ただし、同じ名前のコンテナ(-- nemae以下)は作れないので、名前を変え てみましょう。
118 上記のコマンドを入力するとWordPressが起動します。起動するのを確認し たら、docker killで落としてみましょう。 docker run --name wordpress2 -d --link
mysql:mysql -p 80:80 wordpress
(C)Copyright 1996-2014 SAKURA Internet Inc.
・「Docker run」をコマンドを叩くとDocker イ メージからDocker コンテナが作られる ・Dockerイメージは読み込みのみ可能(read- only)。変更はできない。 ・Dockerコンテナは、読み書きができるファイル システム 120
121 本日はDocker fileからDockerイメージを作る「docker build」を試します ・docker commit → コンテナからDocker イメージを作る。 ・docker
build → Docker fileからDockerイメージを作る。 ・docker import → Base imageからDockerイメージをつくる。
122 このコマンドを入力すると、過去に利用したDockerイメージが表示されます docker images
123 Dockerfileを利用して、 Dockerイメージを作る。
・DockerfileはDockerイメージを作るためのレシ ピのようなものです。 ・ Dockerfileは作成するDockerイメージの内容を テキスト形式で記述します。 ・作成したテキストファイルはdocker buildコマ ンドで読み込んでDockerイメージの作成を実行し ます。 124
125 Dockerfileをvimで書いてみます「myimages」というフォルダを作ってvim でDockerfileという名前のファイルを作製します。 mkdir myimage cd myimage (1) (2) vim
Dockerfile (2)
126 「a」を押して入力モード上記の三行を入力する。入力が終わったら、Escで コマンドモードに戻った後「:wq」で保存する。 FROM ubuntu RUN apt-get update RUN apt-get
install -y wget
▪docker build コマンド → DockerfileからDockerイメージを作る ▪構文 docker build –t <Dockerイメージ名>:<タグ名><Dockerfile
を配置するディリクトリ> 127
128 dockerビルドコマンドを入力して、Dockerイメージを作成してください。 docker build -t myimage .
129 Successfully built <イメージID>が出れば、イメージの作成成功
130 作成したイメージは上記のコマンドから実行できます。 docker run -it myimage bash
[もっと勉強したい人向けの参考文献] 131
132 ご存じ、前佛さんのDocker入門。コマンドの使い方など勉強になります。 (http://www.slideshare.net/zembutsu/introduction-to-docker- management-and-operations-2nd)
133 Shuji Yamada氏による資料。DockerがITに与える影響なども考察 (http://www.slideshare.net/uzy_exe/introduction-to-docker- 43931535)
134 Nobuchika Kamon氏による資料。初心者向けハンズオン資料 (http://www.slideshare.net/nobuchikakamon/8a117docker?related=1 )
・Docker チートシート http://qiita.com/bungoume/items/b8911fd243d9c084bd63 ・Dockerコマンドメモ http://qiita.com/curseoff/items/a9e64ad01d673abb6866 ・Docker イメージの働き http://qiita.com/zembutsu/items/8d7513eaafc2c1430df2#2-6 ・ Dockerイメージのレイヤー構造について
http://enakai00.hatenablog.com/entry/20140802/1406958412 ・ DockerでWordPressサイトを開発してみよう http://www.slideshare.net/mookjp?utm_campaign=profiletracking&utm_ medium=sssite&utm_source=ssslideview ・コンテナのリンク(連結)と操作 http://qiita.com/zembutsu/items/f361cad9be500950939f 135
ご清聴ありがとうございました 136
もっとDockerを知りたい人は、この後16時から の、宮原さんのセッションをどうぞ! 137
138 本日ご紹介した「さくらのクラウド」の解説本の 紹介セッションにでますので、お時間のある方は どうぞ
[おまけ] 139
140 「Ghost」は最近、人気が出ているNode.js製の軽量ブログエンジンです。 今回はDockerを利用して、コマンド1発でインストールします。
141 Ghostを8080番ポートで利用できるようにします。元々Ghostは2368番 ポートで動いているので8080番ポートとマッピングさせます。 docker run -p 8080:2368 -d ghost
142 インストールが終わったら「(IPアドレス):8080」をブラウザで入力してく ださい。上記のような「画面」が表示されます。