Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dockerに触ってみよう

B31b322f3c5ee83743da0e8bd6891f8a?s=47 横田真俊(wslash)
January 18, 2017
3.1k

 Dockerに触ってみよう

2017年1月18日のハンズオン資料です。

コマンドの補足資料は下記の通りです
http://qiita.com/Wslash/items/941697bf0fcd3213e7dd

B31b322f3c5ee83743da0e8bd6891f8a?s=128

横田真俊(wslash)

January 18, 2017
Tweet

Transcript

  1. エバンジェリストチーム 横田真俊(@Wslash) さくらインターネット株式会社 初心者向けDockerハンズオン Dockerを触ってみよう! 2017/01/18

  2. 自己紹介 氏名 横田真俊(@Wslash) 「さくらのインターネット」の エバンジェリスト 兼 さくらのクラウド企画担当です。 年に50回ほどのセミナーやハンズオンなどを担当しています。 左のアイコンで、ツイッターをやっていますので お気軽にお声がけください

    2
  3. 他にもこんな本を書いております インフラエンジニア向けの 本も書きました。 3

  4. None
  5. Dockerに触れることで コンテナがどのようなものか 体験していただきます 5

  6. Dockerとは何か? 6

  7. None
  8. 「コンテナ」と仮想化の違い

  9. 今までの仮想化(1) 「ホストOS仮想型」 9 ホストOSの上で「仮想化ソフト」を動かすタイプ ホストOSとアプリを共存できるのでPCからの個人利用の形 で多いが、ホストの負荷が大きい ホスト形仮想化ソフト (VirtualBOXなど) OS (1)

    OS(2) OS(3) アプリ アプリ アプリ ホストOS(Windows/Linuxなど) アプリ
  10. 今までの仮想化(2) 「ハイパーバイザー型」 10 ホストOSの代わりに「ハイパーバイザー」が仮想サーバを 制御する。ホストサーバ全体を仮想化で利用するため、ホス トOSを経由しないためホストOS型よりレスポンスが良い ハイパーバイザー (VMWareなど) OS (1)

    OS(2) OS(3) アプリ アプリ アプリ
  11. 「コンテナ」 11 OSの代わりに各コンテナがアプリを稼動させます。今まで より一番ホストマシンの処理負荷が低い コンテナ管理ソフトウェア (Dockerなど) コンテナ(1) コンテナ(2) コンテナ(3) アプリ

    アプリ アプリ ホストOS(Linux) アプリ
  12. 1 何がうれしいのか?

  13. よく言われるDocker(コンテナ)のメリット •処理速度が速い → OSやハードウェアを仮想化していないため オーバーヘッドが少なく処理能力が高い •メモリやディスクの消費量をおさえられる → それぞれにカーネルを持たないため メモリ/ディスクの消費量をおさえられる。 •ポータビリティ

    → 環境を意識せず使える 1
  14. DockerのWebページに行くと… 1 DockerのWebページにある「BUOLD,SHIP,RUN」とは?

  15. 1

  16. 1 ハンズオン

  17. 17 $ docker Docker Hub Nginx Build Run Ship 開

    発 ・ 構 築 移 動 実 行 今日やること
  18. • 基本操作とコンテナ作成・デプロイ方法を習得 18 1. さくらのクラウド にログイン 2. 仮想サーバ(CentOS 7.2)の起動 3.

    Docker Engine のセットアップ 4. docker コマンドの基本操作を学ぶ 5. Nginx イメージを作成 6. Docker Hub にログイン 7. Docker Hub に push 8. Arukas に Nginx をデプロイ $ docker Docker Hub Nginx ハンズオンの流れ
  19. コントロールパネルに ログインしてみよう 19

  20. 「コントロールパネル」にログイン 2 「コントロールパネル」にログインするには、Webサイトの上部にある 「コントロールパネルログイン」をクリックしてください

  21. 「コントロールパネル」にログイン 2 「コントロールパネル」にログインしたら「さくらのクラウドユーザ」 としてログインの箇所にある「ユーザコード」「会員ID」 「パスワード」を入力してください

  22. ログイン後の画面 2 無事にログインできたら、このような画面が表示されますので 「さくらのクラウド(IaaS)」をクリックしてください

  23. ログイン後の画面 2 さくらのクラウド(IaaS) をクリックすると このような画面が表示されます

  24. サーバを作成してみよう 24

  25. まずは一番小さいサーバを作成してみよう 2 ・まずは、CPU 1ギガ、メモリ 1GB、ディスク SSD 20GB、NIC 1のもので OSはCent OS

    7.2の物を作成してみましょう
  26. サーバを作成する 2 ・メインメニューより「サーバ」をクリック ・その後「追加」をクリックすると「サーバ作成画面」に移動します

  27. サーバ作成画面(1) 2 まず「ホスト名」を入力し、次にサーバプランを選択します。今回はホスト 名は適当に入力し、サーバプランは「1GB/1仮想コア」を選択します。

  28. サーバ作成画面(2) 2 ボタンにないプランの場合は「全てのアイテムから選択」を選択すると アイテム一覧が表示され、そこから選択できます

  29. サーバ作成画面(3) 2 次に「ディスクプラン」を選択します。今回は「20GB SSDプラン」を選択 します。上記のプランにない物を利用する場合は、サーバと同じように「全 てのアイテムから選択」を選択してください。

  30. サーバ作成画面(4) 3 ディスクイメージを選択します、利用したい「OS」を選択してください。 今回は「CentOS 7.2」を利用します。

  31. サーバ作成画面(5) 3 接続のネットワークに「インターネット」を選択し「管理ユーザのパスワー ド」でrootのパスワードを入力します。

  32. シンプルモードを解除する 3 全ての入力項目を入力し終わった後「作成」をクリックします

  33. 3 「操作確認」のダイアログが表示されます。問題が無ければ「作成」をク リックします。

  34. 3 「作成」をクリックすると上記のダイアログが出てきます。 ステータスが全て成功になるとサーバが作成されます。

  35. 3 サーバの作成が完了すると、画面の右下にダイアログが表示されます。これ をクリックしてください。

  36. 3 ダイアログをクリックすると、サーバ情報が表示されます。

  37. リモートスクリーンについて 37

  38. 「リモートスクリーン」 3 ブラウザ内でサーバの操作ができます。作成したサーバの 「コンソール」をクリックしてください。

  39. 文字入力の方法 3 画面中央をクリックすると、文字入力ができるようになりま す。rootと先ほど入力したパスワードを入れてください

  40. 「リモートスクリーン」 4 「ペースト」を選択すると、文字列のペーストも可能です

  41. 4 IPアドレスでSSH接続できるので わかる方はそれで接続してください

  42. Dockerをインストールする 42

  43. Dockerをインストールするサーバについて 4 今回はCentOS 7系でインストールします 今日の資料は別途、公開いたします 2万円クーポンを配るのでそれで復習できます

  44. サーバにDockerをインストールする 4 とりあえず「yum -y update」でパッケージ情報を最新にする yum -y update

  45. サーバにDockerをインストールする 4 「curl -fsSL https://get.docker.com/ | sh」とコマンドを入れるとDocker のインストールがはじまります。 curl -fsSL

    https://get.docker.com/ | sh
  46. Dockerを開始する 4 サービスを有効します。 systemctl enable docker.service

  47. Dockerを開始する 4 「systemctl start docker」とコマンドを入れるとDockerが動きます systemctl start docker

  48. Dockerがインストールされているか確認 4 「docker version」と入力してDockerのバージョンが表示されれば、 Dockerが正常にインストールされています。 docker version

  49. 4 コンテナを起動する「docker run」

  50. docker run ▪docker run コマンド → 指定したイメージのコンテナを起動する ▪構文 → docker

    run イメージ [オプション][コマンド][引数] ▪オプション → -d バックグランドで実行 → -i コンテナの標準入力を開く → -t ttyを確保する → -p ポートフォワード 5
  51. Hello World 5 ちゃんとDockerが動くか「hello world」を動かしてみたいと思います。 上記のコマンドを入力してください。 docker run hello-world

  52. docker run hello-worldの結果 5 「hello world」の入力が終わると「docker run –it ubuntu bash」を試し

    てみろ、と言われているので、これを入力してみましょう。
  53. ubuntuを入れてみる 5 Dockerの上でUbuntuを入れて、コマンド入力ができるようにしてみる。 「-it」で、コンテナの中で入力できるようになる。 docker run -it ubuntu bash

  54. ubuntuを入れてみる 5 上記コマンドでコンテナで作られたUbuntuのバージョンがわかります cat /etc/issue

  55. Dockerを利用することでCentOS上でubuntuを利 用することができます。 ただし、このubuntuには、ほとんどコマンドが 入っていません。 例えば「curl ifconfig.me/ip」を叩くと、なにも表 示されないと表示されます。 5

  56. 5

  57. 起動したubuntuにcurlを利用できるようにする 5 「apt-get update」を叩いた後「apt-get install curl」で「curl」をインス トールしてください。インストール中、色々と聞かれますがとりあえずyを 押して下さい。 apt-get update

    apt-get install curl (1) (2)
  58. Curlがインストールされていることの確認 5 「curl ifconfig.me/ip」でIPを表示してみる curl ifconfig.me/ip

  59. 作成したコンテナから出る 5 「exit」をコマンドを叩くとコンテナから出て、このコンテナが止る。 コンテナが止ると今までやった作業(apt-getとか)は保存されない。 exit

  60. 再度、コンテナを動かすと… 6 再度コンテナを起動して「curl ifconfig.me/ip」を入力してください。これ を入力しても、先ほどのように実行されないはずです。 docker run -it ubuntu bash

    curl ifconfig.me/ip (1) (2)
  61. コンテナについて •exitするだけで、今までの動作が消えてしまう ので、このままだと使えないです。 •次はバックグランドでDockerのコンテナを利 用する方法について解説します。 6

  62. 6 バッググランドでコンテナを動かす

  63. 今の時刻を毎秒表示するコンテナを起動する 6 上記のコンテナを起動すると、時刻を1秒ごとに表示するコンテナが表示さ れる。しばらく動かしてみて「ctrl + C」で止めてください。 docker run jpetazzo/clock

  64. さきほどのコンテナをバックグランドで動かす 6 コンテナをバックグランドで動かすにはrunコマンドに「-d」をつける。 上記のコマンドを入力すると、先ほどのように時刻は表示されずバックグラ ンドで動いており、ログは記録されている。 docker run -d jpetazzo/clock

  65. 6 docker psでコンテナを確認する

  66. docker ps ▪docker ps コマンド → コンテナIDを確認するためコマンド。これでわかる ものは ・コンテナのID ・コンテナがどのイメージから作られたのか?

    ・コンテナが動いてどのぐらい経過したのか? ▪オプション → -l 直近(latest)のコンテナの情報を表示 → -q コンテナのショートIDのみ表示 → -a 停止しているコンテナも含め全て(all)表示 6
  67. docker psでコンテナの確認 6 docker psを入力すると、現在動いているコンテナの情報が見られる 現在のところ起動しているコンテナは「jpetazzo/clock」のみのはず docker ps

  68. docker ps -aで今まで起動したコンテナを確認 6 docker ps –aを入力すると今まで起動したコンテナが確認できる。 docker ps -a

  69. docker psのオプション 6 「docker ps -l」で直近に操作したコンテナを表示し「docker ps -q」でコ ンテナのショートIDが表示される。 docker

    ps -l docker ps -q (1) (2)
  70. 7 docker logsでコンテナ のログを確認する

  71. docker logs ▪docker logs コマンド → コンテナの標準出力の内容をコンテナ外から 確認する ▪オプション →

    -tail ログの最後数行が見られるようになる → -follow リアルタイムでログが確認できる。 7
  72. docker logs 7 「docker logs(コンテナのID)」を入力すると、コンテナの標準出力が見 られる。先ほどバックグランドで動かした「 jpetazzo/clock 」のコンテナ IDを入力してみましょう。 docker

    logs (コンテナのID)
  73. docker logsのオプション 7 「-- tail」オプションを使うことで、ログの最後数行が見られるようになる。 例えば、(1)のコマンドはログの最後3行を出すコマンドとなる。 docker logs --tail 3

    (コンテナのID)
  74. リアルタイムでログを見る 7 docker logs --tail 1 --follow (コンテナのID) Unixコマンドのtail -fのようにfollowオプションをつけることでリアルタイ

    ムでログを確認することができる。上記のコマンドを入力するとリアルタイ ムでログが表示される。止めるには「Ctrl + C」で
  75. 7 docker kill、docker stopで コンテナを止める

  76. コンテナの停止 7 「-d」で動作したコンテナを止めるにはkillかstopを使う。今回はkillコマン ドで、先ほどのコンテナを止めてください。 docker kill (コンテナのID) docker stop (コンテナのID)

    (1) (2)
  77. 停止したコンテナを確認する 7 「docker ps」で先ほど止めたコンテナのIDが無いことを確認してください 「docker ps –a」で止めたコンテナも確認できます。 docker ps docker

    ps -a (1) (2)
  78. Docker上でGhostを インストールする 78

  79. 79 これだけではつまらないので アプリを入れてみましょう

  80. Ghostとは? 80 「Ghost」は最近、人気が出ているNode.js製の軽量ブログエンジンです。 今回はDockerを利用して、コマンド1発でインストールします。

  81. 通常でGhostをインストールするのに必要なもの 81 • Node.jsとnpm • ApacheとかのWebサーバ • その他、色々 「Ghost」をインストールして利用するには上記のような物を色々とインス トールする必要があり面倒です。

  82. DockerからGhostを入れる 82 Ghostを80番ポートで利用できるようにします。元々Ghostは2368番ポート で動いているので80番ポートとマッピングさせます。 docker run -p 80:2368 -d ghost

  83. インストールが終わったらIPアドレスをいれる 83 インストールが終わったら「(IPアドレス)」をブラウザで入力してください。 上記のような「画面」が表示されます。「(IPアドレス)/admin」でGhostの セットができます。

  84. docker psでコンテナIDを調べる 84 起動を確認したら、このコンテナを止めてみましょう。コンテナの止め方は 「docker stop (コンテナのID)」で止りますので「docker ps」でコンテナ IDを調べます。 docker

    ps
  85. docker psでコンテナIDを調べる 85 「docker ps」を入力して「CONTANER ID」を確認する。

  86. docker psでコンテナIDを調べる 86 「docker stop (コンテナのID)」を入力すると、ghostのコンテナが止りま す。(先ほどの例だと07a4e04f6418となります。) docker stop (CONTANER

    ID)
  87. nginx dockerイメージの作成 87

  88. 88 ここからはnginxを例にして、 Dockerイメージの作成を行います

  89. Dockerを利用してnginxを起動する 89 「docker stop (コンテナのID)」を入力すると、ghostのコンテナが止りま す。(先ほどの例だと07a4e04f6418となります。) docker run -itd -p

    80:80 nginx:latest
  90. Dockerを利用してnginxを起動する 90 起動が出来たらブラウザからIPアドレスを入力し、上記の画面が表示される のを確認する

  91. docker exec ▪docker exec コマンド → 実行中のコンテナでコマンドを実行します。 ▪構文 → docker

    exec [オプション] コンテナ コマン ド [引数...] ▪オプション → -d コマンドをバックグラウンドで実行 9
  92. docker exec コマンドで bash の追加プロセスを実行 92 「docker stop (コンテナのID)」を入力すると、ghostのコンテナが止りま す。(先ほどの例だと07a4e04f6418となります。

    docker exec -it $(docker ps -ql) /bin/bash
  93. docker exec コマンドで bash の追加プロセスを実行 93 「docker stop (コンテナのID)」を入力すると、ghostのコンテナが止りま す。(先ほどの例だと07a4e04f6418となります。

    docker exec -it $(docker ps -ql) /bin/bash
  94. ps -ef コマンドで、nginx コンテナの中での操作を確認。 94 コンテナの中でnginxが動いているのを確認する ps -ef

  95. 95 上記のようになっている事を確認

  96. Nginx のドキュメント・ルートにある index.html を書き換えます。 96 Nginx のドキュメント・ルートにある index.html を書き換えhello world

    が表示されるようにします echo 'hello world' > /usr/share/nginx/html/index.html cat /usr/share/nginx/html/index.html
  97. ページの表示確認 97 ブラウザで表示を確認します。「Shift」キーを押しながら再読み込みボタン を押すと、画面に hello world が表示されます。

  98. exitでbashを終了する 98 exitでbashを終了する。 exit

  99. 99 変更したnginxコンテナから イメージを作成してみましょう

  100. Docker コンテナとDocker イメージの違い ・「Docker run」をコマンドを叩くとDocker イメージからDocker コンテナが作られる ・Dockerイメージは読み込みのみ可能(read- only)。変更はできない。 ・Dockerコンテナは、読み書きができるファイ

    ルシステム 10
  101. 新しいイメージを作るには 101 本日はDocker fileからDockerイメージを作る「docker build」を試します ・docker commit → コンテナからDocker イメージを作る。

    ・docker build → Docker fileからDockerイメージを作る。 ・docker import → Base imageからDockerイメージをつくる。
  102. docker commit ▪docker commit コマンド →コンテナの変更を元に新しいイメージを作成 ▪構文 → docker commit

    [オプション] コンテナ [リポジトリ[:タグ]] 10
  103. docker commitでイメージを作る 103 docker commit コマンドで mynginx:1.0 イメージを作成します。 docker commit

    $(docker ps -ql) mynginx:1.0
  104. docker images ▪docker images コマンド →ローカルにあるイメージを一覧表示します。 ▪構文 → docker images

    [オプション] [リポジトリ[:タグ]] 10
  105. docker images で利用してきたイメージを見てみる 105 docker images コマンドで、先ほど作ったイメージ「mynginx:1.0」が作 成されたのを確認します。 docker images

  106. curlコマンドからちゃんと起動しているか確認をする 106 curl コマンドで、コマンドライン上でポート 8080 を開きます。 (ブラウザでポートを指定して確認しても良いです。) curl http://localhost:8080

  107. Dockerfileを利用して、 Dockerイメージを作る 107

  108. 自分が使用したイメージの表示 108 このコマンドを入力すると、過去に利用したDockerイメージが表示されます docker images

  109. 109 Dockerfileを利用して、 Dockerイメージを作る。

  110. Dockerfile? ・DockerfileはDockerイメージを作るためのレ シピのようなものです。 ・ Dockerfileは作成するDockerイメージの内容 をテキスト形式で記述します。 ・作成したテキストファイルはdocker buildコ マンドで読み込んでDockerイメージの作成を実 行します。

    11
  111. Dockerfileを書いてみる 11 作業用ディレクトリ mynginx を作成し、移動します。 mkdir mynginx cd myimage (1)

    (2)
  112. 簡単なDockerfileを作る 11 次のコマンドを実行し、 Dockerfile を作成します。 tee ./Dockerfile <<-'EOF' FROM nginx:latest

    RUN echo "hello world<br />$(date)" > /usr/share/nginx/html/index.html EOF
  113. docker build ▪docker build コマンド → DockerfileからDockerイメージを作る ▪構文 docker build

    –t <Dockerイメージ名>:<タ グ名><Dockerfileを配置するディリクトリ> 11
  114. docker build 114 docker build コマンドで mynginx:1.1 イメージを自動作成します。 docker build

    -t myimage . docker build -t mynginx:1.1 .
  115. 115 Successfully built <イメージID>が出れば、イメージの作成成功

  116. docker build 116 docker images コマンドで、イメージが作成されたのを確認します。 docker images

  117. docker build 117 作成した mynginx:1.1 イメージを使って、新しいコンテナを実行します。 docker run -d -p

    8888:80 mynginx:1.1
  118. docker build 118 curl コマンドで、コマンドライン上でポート 8888 を開きます。 curl http://localhost:8888

  119. 119 コンテナ等をまとめて処理する

  120. docker build 120 上記コマンドから実行しているコンテナをまとめて終了させられます docker kill $(docker ps -q)

  121. docker build 121 上記コマンドでコンテナ(コンテナ用のイメージ・レイヤとメタ情報)を削 除します。 docker rm $(docker ps -aq)

  122. 122 不要なイメージの削除

  123. docker images -q 123 docker images -q を実行すると、ローカルにあるイメージ ID を表示します

    docker images -q
  124. docker images -q 124 docker images -q を実行すると、ローカルにあるイメージ ID を表示します

    docker images -q
  125. docker rmi 125 docker rmi とdocker images –aqを利用して全てのイメージを削除します。 docker rmi

    -f $(docker images -aq)
  126. 作成したDockerイメージを Docker Hubにアップロードする 126

  127. Docker Hubにアクセス 12 https://hub.docker.com/ からDocker IDを登録し、ログインします。

  128. Docker Hub にログインします。 128 上記コマンドでDocker Hub にログインできます。 docker login

  129. docker tags コマンド 129 docker tags コマンドで mynginx:1.1 イメージに Docker

    Hub ID の情報 を付けます docker tag mynginx:1.1 <自分のID名>/mynginx:1.1
  130. docker imges コマンド 130 docker images で確認します。先ほどタグづけしたイメージを確認いたし ます。 docker images

  131. docker Push コマンド 131 docker push コマンドでイメージを送信します。 docker push <自分のID名/mynginx:1.1>

  132. Docker Hubにアップロードした イメージをArukasで実行する 132

  133. Arukasとは DockerイメージをDocker最適化したArukasインフラで稼働 13

  134. 13

  135. 135 Arukasの利用方法

  136. ログイン 136 https://app.arukas.io/から新規登録を行い、登録が完了したらログインをしてくだ さい

  137. アプリの作成 137 ログインをしたら「新しいアプリケーションを作成」をクリック

  138. 13 Imgesに「 <DockerHubId>/mynginx:1.1 」← 1.1 のタグを忘れずに Portに「80」を入力をして、一番下の「アプリケーションを作成」をクリックする

  139. 13 ダッシュボードに戻り、作成したアプリの「起動ボタン」をクリックする。

  140. 起動状態 14 起動状態になったら「Endpoint」をクリックして、nginxが動いているか確認する

  141. まとめ 141

  142. まとめ Docker の基本コマンドを学びました DockerとDocker Composeを利用すると、 すぐに検証環境が利用できて便利 142

  143. 143 ご静聴ありがとうございました。 「さくらのクラウド 2万円クーポン」を配布いたします。 今日の復習にご利用ください

  144. 14 ご清聴ありがとうございました http://cloud.sakura.ad.jp

  145. おまけ

  146. Dockerを利用してWordPressを 構築する。 146

  147. Wordpressをインストールしてみる 147 上記のコマンドを入力すると、色々とダウンロードがはじまる。 docker run wordpress

  148. Wordpressをインストールしてみる 148 エラーが出てWordPressが起動できない、どうやらMySQLが必要な様子。 というわけで、MySQLのコンテナを持ってくる。

  149. MySQLイメージのダウンロード 149 「docker pull [イメージ名]」でイメージのダウンロードがはじまります。 ちなみに「docker run [イメージ名]」をした時にローカルにコンテナイメー ジがないと自動的にダウンロードされます docker

    pull mysql
  150. MySQLの設定 150 わかりやすいように –eを利用することでMySQLのパスワードの設定が可能 となります。(パスワード)には、任意のパスワードを入れてください docker run --name mysql -e

    MYSQL_ROOT_PASSWORD=(パスワード) -d mysql
  151. Wordpressの立ち上げ 151 上記のコマンドを入力するとWordPressが立ち上がります。「-- link」は、- -link <連携したいコンテナ名>:<エイリアス名>オプションで新しいコンテ ナを起動すると,そのコンテナ内で連携したいコンテナのポート番号やIPを 環境変数として利用できるという機能です docker run

    --name wordpress --link mysql:mysql -p 80:80 wordpress
  152. 152 インストールに成功するとこんな画面が出てきます。

  153. ブラウザでIPアドレスにアクセス 153

  154. 154 「-d」を指定していないので「ctrl + c」を入力すると、このコンテナ自体 も停止してしまいます。 それでは、次はバッグランドでWordPressを起動してみましょう。 ただし、同じ名前のコンテナ(--name以下)は作れないので、名前を変えて みましょう。

  155. 155 Docker Compose

  156. Docker Composeとは? 156 Docker Composeは、複数のコンテナか ら構成するサービスを従来よりも簡単に 構築できるツールです。 従来はコンテナを作成するには、いちい ち「docker run」しなければならなかっ

    たのが、コマンド1発で複数のコンテナ を利用したサービスを構築できます。
  157. 157 Docker Composeを利用して Rocket.Chatの環境を構築する

  158. Docker composeのバイナリをセットする。 158 上記のコマンドを入力して、Docker Composeのバイナリをセットする curl -L https://github.com/docker/compose/releas es/download/1.8.0/docker-compose- `uname

    -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
  159. Docker composeがインストールされたか確認 159 「docker-compose version」を入力すると、Docker composeのバージョ ンが表示される、正しくインストールされれば、このコマンドでバージョン 情報が表示される。 docker-compose version

  160. Docker-compose.yamlの作成 160 本来であれば、作業用のディレクトリの中に「docker-compose.yaml」を用 意する必要があるのですが、今回は事前に私の方で作成したので、そちらをク ローンしてください。クローンが終わったら「rocketchat」に移動します。 git clone https://github.com/zembutsu/sakura-cloud- hands-on.git cd

    sakura-cloud-hands-on/rocketchat
  161. イメージを取得する 161 先ほど作成したディレクトリ「rocketchat」の中で「docker-compose pull」を入力。Rocket.Chatに必要なイメージをダウンロードします。 docker-compose pull

  162. イメージを取得する 162 エラーが出ていなければ「docker images」を入力して「mongo」と 「rocketchat/rocket.chat」と「rocketchat/hubot-rocketchat」のイメー ジを取得できているか確認をする。 docker images

  163. 163 エラーが出ていなければ「docker images」を入力して「mongo」と 「rocketchat/rocket.chat」と「rocketchat/hubot-rocketchat」のイメー ジを取得できているか確認をする。 # docker images REPOSITORY TAG

    IMAGE ID CREATED SIZE mongo latest 7f09d45df511 5 days ago 336.1 MB rocketchat/rocket.chat latest 30826dfbbfa6 2 weeks ago 332.4 MB rocketchat/hubot-rocketchat latest a727f5c88c43 5 weeks ago 800.5 MB
  164. Composeを使って複数のコンテナを立ち上げる 164 イメージを取得できていれば「docker-compose up -d」を入力して Rocket.chat起動に必要な複数のコンテナを立ち上げます。 docker-compose up -d

  165. 「docker ps」を入力して動作を確認する 165 「docker-compose up -d」でコンテナを立ち上げた後「docker ps」で、 正常に動作しているか確認する。 docker ps

  166. ブラウザで「IPアドレス」を入力する 166 正常に動作していれば、ブラウザに http://サーバのIPアドレス:3000/ を入 力すれば、Rocket.Chat ログイン画面が表示されます。「新しいアカウント を登録」をクリック後、名前、メールアドレス、パスワードを入力します。

  167. Wordpressの立ち上げ 167 上記のコマンドを入力するとWordPressが起動します。起動するのを確認し たら、docker killで落としてみましょう。 docker run --name wordpress2 -d

    --link mysql:mysql -p 80:80 wordpress