Docker hands on nifty sakura jul19

4,126 views
4,028 views

Published on

Part1 環境構築編 [p.1~]
Part2 鯨でもわかる Docker 入門 [p.54~]

クラウドを渡り歩け! さくら×ニフティ 合同ハンズオン勉強会!!
Dockerを利用したクラウド間移行のポテンシャル?運用に変化は?みんなで考えよう!!

#ncstudy
2014年7月19日(土) 10:00 – 17:00
会場:ニフティ株式会社 セミナールーム (東京新宿)

July 19, 2014, @ Nifty Shinjyuku, Tokyo, Japan

Published in: Technology
0 Comments
15 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,126
On SlideShare
0
From Embeds
0
Number of Embeds
1,290
Actions
Shares
0
Downloads
42
Comments
0
Likes
15
Embeds 0
No embeds

No notes for slide

Docker hands on nifty sakura jul19

  1. 1. クラウドを渡り歩け! さくら×ニフティ 合同ハンズオン勉強会!! Dockerを利用したクラウド間移行のポテンシャル?運用に変化は?みんなで考えよう!! #ncstudy 2014年7月19日(土) 10:00 – 17:00 会場:ニフティ株式会社 セミナールーム (東京新宿)
  2. 2. 今日のハンズオン 北海道 石狩第一ゾーン Dockerhub https://hub.docker.com 東日本 east-1 リージョン 技術検証 Creationline, Inc.
  3. 3. 環境構築資料 Preparation  クラウド準備 1. さくらのクラウド編 10:40 – 11:10 2. ニフティクラウド編 11:10 – 11:40 3. SSH鍵の相互認証 11:40 – 11:50 準備段階として、クラウド上でマシンの起動を 試みます。更に、自分の PC から各クラウドに リモート接続を行い、動作を確認します。 更に、相互のクラウド環境で、SSH 鍵を交換し 互いに行き来できるようにします。
  4. 4. 準備1/3 さくらのクラウド編
  5. 5. さくらのクラウド  http://cloud.sakura.ad.jp/  運営:さくらインターネット株式会社 http://www.sakura.ad.jp/ 料金体系はサーバ料金の みで、データ転送料なし 1台1,900円から お使いのVPSから1クリック でクラウドに移行可能
  6. 6. 「さくらのクラウド」でCoreOS リリース 7月18日よりDocker専用OS、 「CoreOS」に対応いたしま した。 無料クーポンを配りますの で、今日勉強したことを CoreOSを使って復習しま しょう。
  7. 7. さくらのクラウド手順(所要30分)  環境構築手順 ➡ 1. コントロールパネルにアクセス ➡ 2. サーバの起動 ➡ 3. SSH ログインと鍵ペア作成
  8. 8. [1/3] さくらのコントロールパネルにアクセス  https://secure.sakura.ad.jp/cloud/  お配りした、紙に書かれている「アカウ ント」「会員ID」「パスワード」を記入 してください。  記入については 「アカウント名」@「会員ID」 「パスワード」 といった順番です。
  9. 9. [1/3] さくらのコントロールパネルにアクセス  https://secure.sakura.ad.jp/cloud/  このように、 ログイン出来る事を確認します。
  10. 10. [2/3] サーバの起動  【サーバ】→【追加】
  11. 11. [2/3] サーバの起動  所定項目を入力します  名前:画面に表示する管理上の名称
  12. 12. [2/3] サーバの起動  所定項目を入力します  アーカイブ: 【CentOS 6.5 64bit (基本セット)】を選択  ホスト名:内部で使用する名称  パスワード:rootのパスワードです ※ 実際には公開鍵認証も可能ですが、 今回はまず、パスワード指定します。  最後に【作成】を押します
  13. 13. [2/3] サーバの起動  もう一息です  【作成】を押します  あとは作業が進行するのを待ちます
  14. 14. [2/3] サーバの起動  できました!  完了が表示されたら、ここを押します  このようにサーバ情報が表示されます
  15. 15. [2/3] サーバの起動  仕上げに【電源操作】→【起動】  まだ準備が終わった段階 ログインのためには、起動が必要です  【実行】を押します
  16. 16. [2/3] サーバの起動  起動が完了しました  【閉じる】を押します
  17. 17. [3/3] SSHログインと鍵ペア作成  接続先IPアドレスを確認します  【 NIC 】を押します  【 IPv4 】アドレスを控えます
  18. 18. [3/3] SSHログインと鍵ペア作成  TeraTerm 等でログインします  接続先は、先ほど確認した 【IPv4 アドレス】です
  19. 19. [3/3] SSHログインと鍵ペア作成  TeraTerm 等でログインします  接続先は、先ほど確認した 【IPv4 アドレス】です
  20. 20. [3/3] SSHログインと鍵ペア作成  TeraTerm 等でログインします  初回接続時なので警告が出ます
  21. 21. [3/3] SSHログインと鍵ペア作成  TeraTerm 等でログインします  ユーザ名【 root 】と パスワードを入力  【 OK 】を押します
  22. 22. [3/3] SSHログインと鍵ペア作成  root でログインできました  ログインできない場合は、接続先の IP ア ドレスが正しいかどうか確認します。IP アドレスが正常な場合は、パスワードが 正しいかどうかや、パスワード入力に時 間がかかりタイムアウトしていないか確 認します。
  23. 23. [3/3] SSHログインと鍵ペア作成  ssh-keygen で鍵ペアを作成します  【 ssh-keygen 】コマンドを使い、鍵ペア を作成します。パスフレーズの指定も可 能ですが、ここでは作業を分かりやすく するため、空白で作成します。  途中の問い合わせは「すべてエンター」 を押します。
  24. 24. [3/3] SSHログインと鍵ペア作成  公開鍵と秘密鍵を控えます  【 cat ~/.ssh/id_rsa.pub 】で表示される 内容が公開鍵です。 この次で取得する秘密鍵が手元にあれば、 接続先のリモートに公開鍵を置くことで、 SSH 接続時にパスワードではない認証を 行う事ができます。この接続方式が、 SSH 公開鍵認証であり、クラウドの接続 では比較的一般に見受けられます  【 cat ~/.ssh/id_rsa 】で表示される内容 が秘密鍵です 。取り扱いには細心の注意 を払う必要があります。サーバ上に置く 場合は、パーミッションは 600(rw-------) にするなど、配慮が必要です
  25. 25. [3/3] SSHログインと鍵ペア作成  SSH の鍵認証(RSA方式)を試しましょう ➡ 事前 sshd 準備 • # vi /etc/ssh/sshd_config 47 #RSAAuthentication yes 47 RSAAuthentication yes • # service sshd restart ➡ 公開鍵の設置 • # cat .ssh/id_rsa.pub > .ssh/authorized_keys ➡ SSH ログインを試みる • [root@sakura1 ~]# ssh -l root localhost • Last login: Tue Jul 15 13:11:18 2014 from xxx.jp • [root@sakura1 ~]#  自分で自分に対してログインします  初期状態では鍵認証を行えません。コメ ントを削除し、設定ファイルを書き換え たら、sshd の restart を行います  今回は「authorized_keys」に自分自身の 公開鍵を置きました。同様に、接続した いリモートホスト上に authorized_keysを 置くことで、認証が通るようになります
  26. 26. 準備2/3 ニフティクラウド編
  27. 27. ニフティクラウド  http://cloud.nifty.com/  運営:ニフティ株式会社 http://www.nifty.com/
  28. 28. ニフティクラウド手順(所要30分)  環境構築手順 ➡ 1. コントロールパネルにアクセス ➡ 2. サーバの起動 ➡ 3. SSH ログイン
  29. 29. [1/3] ニフティクラウドにアクセス  https://pa.mon.cloud.nifty.com/  【ログインID】と【パスワード】を入力 し、【コントロールパネルにログイン】 を押します
  30. 30.  https://pa.mon.cloud.nifty.com/ [1/3] ニフティクラウドにアクセス  このようにログインできることを確認し ます
  31. 31.  サーバ作成 [2/3] サーバの起動  左メニューの【サーバー】から 【サーバー作成】を選びます
  32. 32.  ゾーン選択 [2/3] サーバの起動  ゾーンは【west-11】を選び、 【イメージ選択へ】をクリックします
  33. 33.  ゾーン選択 [2/3] サーバの起動  ゾーンは【west-11】を選び、 【イメージ選択へ】をクリックします
  34. 34.  イメージ選択 [2/3] サーバの起動  “Ubuntu 12.04 64bit Plain”の 【選択】をクリックします
  35. 35.  サーバ名の入力 [2/3] サーバの起動  任意のサーバ名を入力  【タイプ・料金設定へ】をクリックしま す
  36. 36.  タイプと料金設定 [2/3] サーバの起動  スペックは【mini】  料金コースは【従量】  【アカウント設定へ】をクリックします
  37. 37.  アカウント設定 [2/3] サーバの起動  【SSHキーを新規作成】
  38. 38.  アカウント設定 [2/3] サーバの起動  パスフレーズを入力後、【SSHキーを作 成する】をクリックします
  39. 39.  SSH鍵の取得 [2/3] サーバの起動  ダウンロードしてくださいをクリックし、 【スクリプト設定へへ進みます】  ダウンロードした .pem ファイルが秘密 鍵です
  40. 40.  ファイアウォール設定 [2/3] サーバの起動  今回は【ファイアウォールを適用しな い】を選び、【確認へ】クリックします
  41. 41.  確認 [2/3] サーバの起動  最後に確認して【作成する】をクリック します
  42. 42.  作成開始 [2/3] サーバの起動  作成を開始しましたと表示される  暫く待つと、画面に情報が出てきます。 これで起動完了しました。  ログインするために IP アドレスを控えて おきます
  43. 43.  TeraTerm等でログインします [3/3] SSHログイン  先ほど控えた IP アドレスに接続します
  44. 44.  初回接続の確認 [3/3] SSHログイン
  45. 45.  初回接続の確認 [3/3] SSHログイン  ユーザ名は【 root 】  パスフレーズは【 SSH鍵作成時のもの 】  “Use RSA/DSA/ECDSA …” をクリックし、 【 Private key file: 】で先ほどダウンロー ドした秘密鍵 (~.pem)を指定する。 ※ TeraTerm では「全てのファイルを表 示」にすること。  最後に 【 OK 】をおすと
  46. 46.  Ubuntu 12.04 にログインできました [3/3] SSHログイン
  47. 47. 準備3/3 SSH鍵の相互認証
  48. 48. これまでの鍵の状態  重要な点は「公開鍵」と「秘密鍵」の セットがあればログイン出来るようにな る点です。  さくらのクラウドでは、サーバの中にロ グインして、「公開鍵」と「秘密鍵」の セットを作成しました。  ニフティクラウドでは、クラウド上で サーバを作成する時点で「公開鍵」と 「秘密鍵」のセットを作成し、「秘密 鍵」は自分の PC にダウンロードしました。 秘密鍵2.pem 公開鍵2 (authorized_keys) 公開鍵1 (authorized_keys) 秘密鍵1 id_rsa
  49. 49. 相互の鍵のやりとり:相互 ssh  さくら  ニフティ – さくらの公開鍵 id_rsa.pub を、 ニフティの ‘authorized_keys’ に 入れます  ニフティ -> さくら – 新しく鍵ペアを作成し、 ニフティの公開鍵 id_rsa.pub を さくらの ‘authorized_keys’ に 入れます  この作業の目的は、後ほど Docker 検証の 際に、相互のクラウド間で行き来できる ようにするためです。 秘密鍵2.pem 公開鍵2 (authorized_keys) 公開鍵1 (id_rsa.pub) 秘密鍵1 id_rsa 公開鍵 (authorized_keys) 公開鍵3 (authorized_keys) 公開鍵3 (authorized_keys)秘密鍵3 (id_rsa)
  50. 50. さくらニフティ手順 1. さくら公開鍵をコピー # cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3Nza……8AwAVw== root@sakura 2. ニフティの authorized_keys に追加 # vi ~/.ssh/authorized_keys ファイルの中に「1.」でコピーした内容を入れる 3. さくら  ニフティにログイン  メモ帳などに貼り付けます
  51. 51. [root@sakura2 ~]# ssh 175.184.21.115 The authenticity of host '175.184.21.115 (175.184.21.115)' can't be established. RSA key fingerprint is 4b:51:2a:28:20:9b:ab:c2:61:d2:c7:cc:07:82:db:2c. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '175.184.21.115' (RSA) to the list of known hosts. Enter passphrase for key '/root/.ssh/id_rsa': Welcome to Ubuntu 12.04.2 LTS (GNU/Linux 3.5.0-23-generic x86_64) * Documentation: https://help.ubuntu.com/ System information as of Fri Jul 18 11:32:03 JST 2014 System load: 0.0 Processes: 68 Usage of /: 5.2% of 27.13GB Users logged in: 1 Memory usage: 29% IP address for eth0: 175.184.21.115 Swap usage: 0% IP address for eth1: 10.100.74.33 Graph this data and manage this system at https://landscape.canonical.com/ 142 packages can be updated. 79 updates are security updates. Last login: Fri Jul 18 10:37:50 2014 from 153.121.40.37 root@ubuntu:~# ssh <ニフティのIPアドレス> 初回接続時に表示、【yes】 パスフレーズ指定時は入力
  52. 52. ニフティさくら手順 1. ニフティの秘密鍵作成 # ssh-keygen 2. ニフティ公開鍵をコピー # cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3Nza……8AwAVw== root@ubuntu 3. さくらの authorized_keys に追加 # vi ~/.ssh/authorized_keys ファイルの中に「2.」でコピーした内容を入れる 4. さくら  ニフティにログイン  メモ帳などに貼り付けます  先ほどと同じ手順です 以上で、ハンズオンの下準備は完了です root@ubuntu:~/.ssh# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: ac:ae:0b:c8:ff:d2:74:7b:c4:cf:d5:a8:c5:b1:32:ac root@ubuntu The key's randomart image is: +--[ RSA 2048]----+ | | | | | | | . . | | S . . = | |.. . o o + * . | |... o o o + * | | .o o . E + | | .=+. . | +-----------------+
  53. 53. クラウド準備編 ~完~
  54. 54. 鯨でもわかるDocker 入門 さぁ、Docker をはじめよう No Docker, No Life @zembutsu Jul 19, 2014 #ncstudy クラウドを渡り歩け! さくら×ニフティ 合同ハンズオン勉強会!! Dockerを利用したクラウド間移行のポテンシャル?運用に変化は?みんなで考えよう!! #ncstudy 2014年7月19日(土) 10:00 – 17:00 会場:ニフティ株式会社 セミナールーム (東京新宿) わかる!! できる!?
  55. 55. 2 Docker 入門 “さぁ、 Docker を始めよう” NO Docker, No Life  目次 1. なぜ Docker なのか? 2. Docker とは何なのか? 3. Dockerで何ができるのか? 4. Docker を使う 技術的な要素ではなく、Dockerは何処で使えて 何が出来るのか?という点が主眼です。
  56. 56. 今日のハンズオン 北海道 石狩第一ゾーン Dockerhub https://hub.docker.com 東日本 east-1 リージョン 技術検証 Creationline, Inc. ハンズオンの資料です。 http://www.zusaar.com/event/14467015
  57. 57. @zembutsu 前佛 雅人 ・Technology Evangelist クリエーションライン株式会社 頭の悪い残念なスライド作りに定評 ←? ・経歴;ホスティングの運用部隊 10年近く, 物理 10,000 台の環境 メインは Linux 系運用監視・サポート 所謂インフラエンジニア的な 運用保守(一次,二次)データセンタ常駐企画営業広報宣伝検証開発 http://slideshare.net/zembutsu 自己紹介 Why am I here?
  58. 58. Docker #とは、業界の侵略者!? WHY DOCKER? 1 「鯨が死ぬか、ボートが沈むか、でーす」
  59. 59. はじめに INTRODUCTION
  60. 60. ?「あーあ、猫も杓子も Docker 、Dockerか」 ?「みな平和なもんや」
  61. 61. あの日見た鯨の名前を 僕達はまだ知らない。 The Docker We Saw That Day
  62. 62. 今日、話すこと 今日、話さないこと ・ 今日話すこと - 鯨はどこから来たのか - 鯨とは何者か - 鯨はどこへ行くのか ・ Docker 技術背景や自動化、監視 - control group - namespace - aufs - devicemapper @enakai00先生の資料や いろいろな所で語られています。 それに自分はさほど詳しくないので、 興味があれば、自分で調べて下さいねっ 「いまからでも遅くはありません。ご覧ください!鯨はあなたを求めてはいません。 やつを狂ったように求めているのは、あなた、あなたなのです!」(白鯨) みなさんと共有する内容 興味があれば、帰って自習して欲しい 「鯨」とは、 dockerであり 我々エンジニア でもある
  63. 63. 理論や技術背景よりも いかに道具として使うか
  64. 64. Docker #とは
  65. 65. Docker エコシステム ( 生態系 ) エコシステムって格好いいけど、事実上の囲い込み、閉鎖系ですよね、あれ
  66. 66. コンテナの歴史 流通革命
  67. 67. ツールとしてのDocker せっかくあるなら使おう
  68. 68. Docker は使えない?
  69. 69. 話は聞かせてもらった 同じ事はクラウドでも聞いた
  70. 70. どこで?いつ使うの? いまでしょ? 使える所があるんだったら、使えば良いのではないでしょうか。
  71. 71. いまそこにある機器 システム 「ヤツはまさに巨大な・・・白い青い悪魔だ・・・!」
  72. 72. Docker 入門 HOW TO USE DOCKER 2 「スターバックの夜食」…鯨を料理しよう
  73. 73. Docker の構造 アーキテクチャ
  74. 74. 技術的な事  @enakai00 さんの資料を読もう! Dockerクイックツアー http://www.slideshare.net/enakai/docker-34526343 Dockerを支える技術 http://www.slideshare.net/enakai/docker-34668707 Inside Docker for Fedora20/RHEL7 http://www.slideshare.net/enakai/docker-technology-v18e ■ 社内勉強会資料 chroot, lxc and docker // Speaker Deck https://speakerdeck.com/d_higuchi/chroot-lxc-and-docker  ありがとうございます! ありがとうございます!
  75. 75. 重要な機能・特長  コンテナを管理するシステム ➡ 軽量・速い ➡ どこでも動く ( Linux 標準 )  レポジトリ ➡ イメージを階層的に管理する • 差分情報の記録 ➡ Dockerhub • イメージの検索 • ダウンロード • 公開
  76. 76. Docker を使う
  77. 77. 事前準備  Dokcer の動くパッケージを入れる ➡ ニフティクラウド # apt-get update # apt-get install -y linux-image-generic-lts-raring linux-headers-generic-lts-raring (略) Setting up linux-headers-generic-lts-raring (3.8.0.44.44) ... Setting up linux-image- generic-lts-raring (3.8.0.44.44) ... # reboot # apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys # sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list“ ➡ apt-get update apt-get install -y lxc-docker
  78. 78. コンテナの管理  docker run # docker run ubuntu /bin/echo ‘hello world’ # docke run centos /bin/echo ‘hello centos’ -i ( interactive , STDIN ) -t ( tty ) --rm ( remove ) ■ docker pull # docker pull centos:latest Pulling repository centos 1a7dc42f78ba: Pulling image (latest) from centos, endpoint: https://cdn-registry-1.docker.1a7dc42f78ba: Download complete 511136ea3c5a: Download complete 34e94e67e63a: Download complete
  79. 79. コンテナ ID・イメージ ID  dokcer ps root@ubuntu:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 31a2629738e9 ubuntu:14.04 /bin/bash 3 minutes ago Exited (0) 2 seconds ago cranky_hypatia 2ad166fc3787 ubuntu:14.04 /bin/bash 7 minutes ago Exited (0) 4 minutes ago hopeful_archimedes ■ docker images root@ubuntu:~# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu-test latest b4e346166aea 10 seconds ago 276.5 MB
  80. 80. commit  コンテナの変更内容を確定 ➡ イメージ化  docker export  docker import
  81. 81. Dockerfile  docker build FROM centos:centos6 MAINTAINER 0.1. NAME, NAME@example.jp RUN echo 'ZONE="Asia/Tokyo"' > /etc/sysconfig/clock RUN rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6 RUN yum -y install httpd RUN echo 'sakura' > /var/www/html/index.html EXPOSE 80 ENTRYPOINT ["/usr/sbin/httpd"] CMD ["-D", "FOREGROUND"]
  82. 82. Docker Hub  役割 ➡ Docker イメージの保管 ➡ 認証 ➡ 自動ビルド ➡ GitHub , BitBuket 投稿
  83. 83. Docker とは何だったのか What was DOCKER 3 「お前がいる限り、私は先に進めない。お前が滅びるか、私が滅びるしかない」
  84. 84. まとめ Docker とは新しい道具
  85. 85. いままで通りでいい? それクラウドでも言えるの?
  86. 86. 未来への道標
  87. 87. Dockerは選択肢の一つ 使えるなら使えば良い
  88. 88. Docker ハンズオン資料 DOCKER HANDS-ON REFERENCE 4 「任しとけ。何をどうやりゃいいのか今はさっぱりだが、任しとけ。」
  89. 89. Hands-On Docker ハンズオン本編
  90. 90. ハンズオンの流れ ■ 目的 実際に docker のインストールを行うほか、 コンテナの作成・管理や、クラウド間の移行が出来るように。 ■内容 ・ ニフティ … Ubuntu 12.04 に Docker をセットアップ ・ さくら … CentOS 6.5 に Docker をセットアップ ・ コンテナを作成し、相互に移動 1. 静的コンテンツ編 ( Apache + HTML ファイル ) 2. 動的コンテンツ編 ( Apache + PHP + PukiWiki )
  91. 91. 1. Dockerのセットアップ (Ubuntu編)  ニフティクラウド上で作業します ➡ 対象サーバに SSH でログイン ➡ Linux kernel のバージョンをあげます # apt-get update # apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring (略) Do you want to continue [Y/n]? y (略) Setting up linux-headers-generic-lts-raring (3.8.0.44.44) ... Setting up linux-image-generic-lts-raring (3.8.0.44.44) ... # reboot  Ubuntu 12.04 は Linux kernel のバージョ ンが古い為、kernel 3.8 以上に上げる必要 があります。
  92. 92. 1. Dockerのセットアップ (Ubuntu編)  reboot後、kernel のバージョンアップを確認 ➡ 対象サーバに SSH でログイン root@ubuntu:~# uname -a Linux ubuntu 3.8.0-44-generic #66~precise1-Ubuntu SMP Tue Jul 15 04:01:04 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux  Docker のセットアップ ➡ # apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.ILmCdlivSB --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary- keyring /etc/apt/trusted.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-key ➡ # sh -c "echo deb https://get.docker.io/ubuntu docker main > ¥ /etc/apt/sources.list.d/docker.list"  3.8 であれば正常です
  93. 93. 続きは Web で! ➡ http://qiita.com/zembutsu/private/3a396dd1e9d16193b0ba

×