Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Docker入門

468 views

Published on

NaITE(長崎IT技術社会) 第13回勉強会資料 Docker入門
speakerdeckにアップロードしたものの、再アップ。
https://speakerdeck.com/imtnd/dockerru-men

Published in: Software
  • Be the first to comment

  • Be the first to like this

Docker入門

  1. 1. Docker 入門 NaITE #13 2016.4.27
  2. 2. 自己紹介 名前:角田 俊(つのだ しゅん) コミュニティ:NaITE など Twitter:いむてん@imtnd 勤務先:通信系製造業 業務:ソフトウェア開発 5年目
  3. 3. 本セッションの目的 Dockerをなんとなく理解する Dockerを最低限使えるようになる
  4. 4. Docker
  5. 5. Dockerについて Dockerとは、仮想化技術の一つ コンテナという単位で仮想化することにより 、OSなどに依存しないシステムを提供
  6. 6. Dockerについて Virtual Machine container https://www.docker.com/what-docker
  7. 7. Dockerのメリット VMと違い軽量であり、起動、終了が高速で ある CIなどで使い捨てながらクリーンな環境でテ ストすることができる パッケージイメージが共有でき、すぐに使用 する仕組みがある
  8. 8. Docker Toolbox
  9. 9. Docker Toolbox Dockerに関連するツールがパッケージ化され たもの Docker Engine Docker Machine Docker Compose Kitematic
  10. 10. Dockerのインストール方 法 Cent OS 7 以上 yum でインストール可能 Ubuntu 15.04 以上 パッケージを追加して、apt-getでインスト ール可能 https://docs.docker.com/engine/installation/linux/ubuntulinux/
  11. 11. Dockerのインストール方 法 コンテナ専用OS https://coreos.com/using-coreos/containers/
  12. 12. Dockerのインストール方 法 コンテナ専用OS CoreOS Project Atomic Red Hat Enterprise Linux Atomic Host Snappy Ubuntu Core
  13. 13. Dockerのインストール方 法 Windows、Mac OSの場合 Virtual Box Docker Toolbox ※ 2016/04/27現在のメジャーな方法
  14. 14. Dockerのインストール方 法 MacOSとWindowsのネイティブ仮想化を用いた Docker純正ツール「Docker for Mac/Windows」登場、 VirtualBoxは不要に http://www.publickey1.jp/blog/16/docker_for_macwindows.html
  15. 15. Windows、Mac OSで何も考えないでインス トールすると、VIrtual Box上に”default”とい う仮想マシンができている Linuxの場合はコマンドで、Docker用の仮想 マシンを作成する Dockerのインストール方 法
  16. 16. Docker Machine
  17. 17. Docker Machine Docker ホストをマネジメントするツール Docker ホストの作成 Docker ホストの起動 Docker ホストの終了 など
  18. 18. Docker Machineコマンド Docker MachineをVirtual Box上に作成 Docker Machineの削除 $docker-machine create —driver virtualbox vmD(仮想マシン名) $docker-machine rm vmD(仮想マシン名)
  19. 19. Docker Machineコマンド Dockerホストの起動 Dockerホストの終了 Dockerホストの一覧表示 $docker-machine start default(仮想マシン名) $docker-machine stop default(仮想マシン名) $docker-machine ls
  20. 20. Docker Machineコマンド DockerホストのIPアドレス確認 Dockerホストへのログイン Dockerホストの環境変数確認 $docker-machine ip default(仮想マシン名) $docker-machine ssh default(仮想マシン名) $docker-machine env default(仮想マシン名)
  21. 21. Dockerコマンド Dockerのイメージの取得 $docker pull centos:centos6 リポジトリ名 タグ
  22. 22. Dockerコマンド $docker pull centos:centos6 Dockerレジストリに 公開された Dockerイメージ pull
  23. 23. Dockerレジストリ Dockerレジストリとは、Dockerのイメージを 管理しておく場所 公式で用意しているDockerレジストリは Docker Hub https://hub.docker.com/
  24. 24. Dockerコマンド Docker イメージの一覧表示 Docker イメージの削除 $docker images $docker rmi centos:centos6(リポジトリ名:タグ)
  25. 25. Dockerコマンド Cent OSのDockerイメージを動かしてみる $docker run -t -i —name centos centos:centos6 /bin/bash コンテナ名を付けられる
  26. 26. Dockerコマンド Docker コンテナの一覧表示 Docker コンテナの削除 $docker ps -a $docker rm centos6(コンテナ名)
  27. 27. Dockerコマンド nginx(エンジンエックス)のイメージ取得 ポートに割り付けて起動 $docker pull nginx:latest $docker run -d -p 8080:80 —name nginx nginx:latest Webサーバを動かしてみる
  28. 28. Dockerコマンド Docker コンテナの終了 Docker コンテナの起動 $docker stop nginx(コンテナ名) $docker start nginx(コンテナ名)
  29. 29. Dockerfile Dockerfileとは、Dockerイメージを作成する 元となるファイル makeファイルのような物で、一コマンドで Dockerイメージが作成出来る 簡単に記述でき、見た目も理解しやすいのが 特徴
  30. 30. Dockerfile Dockerfileサンプル $git clone https://github.com/imtnd/httpd.git httpd +- Dockerfile +- index.html ※ Gitがない人はブラウザから直接アクセス
  31. 31. Dockerfile httpdディレクトリに移動 $cd httpd Dockerfileを元にDockerイメージの作成 $docker build -t httpd ./
  32. 32. Dockerfile コンテナの起動 $docker run -d -p 80:80 httpd(リポジトリ名) ブラウザでホストのIPアドレスにアクセスし てみると、”hello docker”と見える
  33. 33. Dockerfile FROM centos:centos6 MAINTAINER imtnd RUN yum install -y httpd ADD index.html /var/www/html/index.html EXPOSE 80/tcp CMD ["/usr/sbin/httpd","-D","FOREGROUND"]
  34. 34. Dockerfile FROM centos:centos6 MAINTAINER imtnd RUN yum install -y httpd ADD index.html /var/www/html/index.html EXPOSE 80/tcp CMD ["/usr/sbin/httpd","-D","FOREGROUND"] ベースのDockerイメージ
  35. 35. Dockerfile FROM centos:centos6 MAINTAINER imtnd RUN yum install -y httpd ADD index.html /var/www/html/index.html EXPOSE 80/tcp CMD ["/usr/sbin/httpd","-D","FOREGROUND"] Dockerイメージ作成者
  36. 36. Dockerfile FROM centos:centos6 MAINTAINER imtnd RUN yum install -y httpd ADD index.html /var/www/html/index.html EXPOSE 80/tcp CMD ["/usr/sbin/httpd","-D","FOREGROUND"] コマンドの実行指示
  37. 37. Dockerfile FROM centos:centos6 MAINTAINER imtnd RUN yum install -y httpd ADD index.html /var/www/html/index.html EXPOSE 80/tcp CMD ["/usr/sbin/httpd","-D","FOREGROUND"] ファイルの追加指示
  38. 38. Dockerfile FROM centos:centos6 MAINTAINER imtnd RUN yum install -y httpd ADD index.html /var/www/html/index.html EXPOSE 80/tcp CMD ["/usr/sbin/httpd","-D","FOREGROUND"] ポート番号の登録
  39. 39. Dockerfile FROM centos:centos6 MAINTAINER imtnd RUN yum install -y httpd ADD index.html /var/www/html/index.html EXPOSE 80/tcp CMD ["/usr/sbin/httpd","-D","FOREGROUND"] コンテナ起動時の 実行コマンド指示
  40. 40. Docker Compose
  41. 41. Docker Compose コンテナはサービス単位で構築していくと管 理が楽になる(アプリ、DBなど) サービスは複数のコンテナによって構築され ることになるため一括で管理する必要がある 複数のコンテンを管理出来る仕組みが、 Docker Compose
  42. 42. Docker Compose Docker Composeは、YMLファイルでコンテナを管理 する YMLファイルサンプル(TestLinkというサービスが動く) $git clone https://github.com/imtnd/testlink_yml.git ※ Gitがない人はブラウザから直接アクセス
  43. 43. Docker Compose YMLファイルを元にサービスを起動 コンテナの状態確認 $docker-compose up -d $docker-compose ps 下記アドレスにブラウザからアクセルできる http://xxx.xxx.xxx.xxx(ホストのIPアドレス)/testlink/ 初期設定などは下記サイトを参照 http://qiita.com/imtnd/items/a58a707db08c3710d963
  44. 44. Docker Compose サービスの停止 $docker-compose stop 一コマンドで、MySQL、TestLinkのサービス のコンテナが起動してる。 busyboxというのは、データを永続化するた めのコンテナ
  45. 45. Docker Compose Docker hubにあるイメージを使用すると面倒 くさいインフラ構築をしないで、環境をセッ トアップすることができる。 興味を持ったツールを簡単に使用してみたい 時などに最適 (ツール名) docker compose
  46. 46. その他ツール Docker Swarm Docker Registory Kitematic
  47. 47. コンテナ関連サービス tutum Kubernates
  48. 48. 最後に Docker はまだまだまだまだ発展途中なツー ルです。 このスライドの情報も過去の物になっていき ます。 発展途中であるが故に、最新動向を追ってみ ると面白いと思います。
  49. 49. Let’s Run Container

×