Enviar pesquisa
Carregar
Docker入門 OSC 2018 Tokyo/Spring
•
Transferir como PPTX, PDF
•
10 gostaram
•
4,261 visualizações
cyberblack28 Ichikawa
Seguir
OSC 2018 Tokyo/Spring(2018.2.24)の資料です。
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 43
Baixar agora
Recomendados
オープンソースのコンテナ管理プラットフォーム Rancher のご紹介
オープンソースのコンテナ管理プラットフォーム Rancher のご紹介
Ryotaro Kobayashi
Introduction of Kubernetes & Rancher
Introduction of Kubernetes & Rancher
cyberblack28 Ichikawa
On-Premise Kubernetes on Rancher
On-Premise Kubernetes on Rancher
Yasushi Kanaya
What's RancherJP
What's RancherJP
cyberblack28 Ichikawa
Rancher2.0で実現する Managed Kubernetes Service
Rancher2.0で実現する Managed Kubernetes Service
LINE Corporation
話題のKubernetesをRancher2.0で 便利に使う!
話題のKubernetesをRancher2.0で 便利に使う!
cyberblack28 Ichikawa
RKE + Rancher 2.0
RKE + Rancher 2.0
cyberblack28 Ichikawa
kubetnetes etc.. & Rancher2.0 Technical Preview -import BLUMIX K8S Clusters-
kubetnetes etc.. & Rancher2.0 Technical Preview -import BLUMIX K8S Clusters-
cyberblack28 Ichikawa
Recomendados
オープンソースのコンテナ管理プラットフォーム Rancher のご紹介
オープンソースのコンテナ管理プラットフォーム Rancher のご紹介
Ryotaro Kobayashi
Introduction of Kubernetes & Rancher
Introduction of Kubernetes & Rancher
cyberblack28 Ichikawa
On-Premise Kubernetes on Rancher
On-Premise Kubernetes on Rancher
Yasushi Kanaya
What's RancherJP
What's RancherJP
cyberblack28 Ichikawa
Rancher2.0で実現する Managed Kubernetes Service
Rancher2.0で実現する Managed Kubernetes Service
LINE Corporation
話題のKubernetesをRancher2.0で 便利に使う!
話題のKubernetesをRancher2.0で 便利に使う!
cyberblack28 Ichikawa
RKE + Rancher 2.0
RKE + Rancher 2.0
cyberblack28 Ichikawa
kubetnetes etc.. & Rancher2.0 Technical Preview -import BLUMIX K8S Clusters-
kubetnetes etc.. & Rancher2.0 Technical Preview -import BLUMIX K8S Clusters-
cyberblack28 Ichikawa
Kubernetes etc.. & rancher 2.0 technical preview “Let’s import GKE/Bluemix/AK...
Kubernetes etc.. & rancher 2.0 technical preview “Let’s import GKE/Bluemix/AK...
cyberblack28 Ichikawa
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
[Docker Tokyo #35] Docker 20.10
[Docker Tokyo #35] Docker 20.10
Akihiro Suda
Kubernetesと暮らすRancherな生活
Kubernetesと暮らすRancherな生活
Go Chiba
DockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのか
Emma Haruka Iwao
Introduce that Best practices for writing Dockerfiles
Introduce that Best practices for writing Dockerfiles
Yukiya Hayashi
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
Masahito Zembutsu
【さくらのクラウド】Jupyter Notebook スタートアップスクリプト
【さくらのクラウド】Jupyter Notebook スタートアップスクリプト
さくらインターネット株式会社
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Akihiro Suda
ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaS
npsg
Container Networking Deep Dive
Container Networking Deep Dive
Hirofumi Ichihara
DockerCon参加報告 (`docker build`が30倍以上速くなる話など)
DockerCon参加報告 (`docker build`が30倍以上速くなる話など)
Akihiro Suda
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
Kohei Tokunaga
Weaveを試してみた
Weaveを試してみた
Kazuto Kusama
20分でわかるgVisor入門
20分でわかるgVisor入門
Shuji Yamada
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
Arukas meet Mesos/Marathon
Arukas meet Mesos/Marathon
Shuji Yamada
kubernetes(GKE)環境におけるdatadog利用
kubernetes(GKE)環境におけるdatadog利用
Koichi HARUNA
OpenShift v3 Technical Overview
OpenShift v3 Technical Overview
Nakayama Kenjiro
OCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰する
Kohei Tokunaga
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
Etsuji Nakai
Docker Tokyo
Docker Tokyo
cyberblack28 Ichikawa
Mais conteúdo relacionado
Mais procurados
Kubernetes etc.. & rancher 2.0 technical preview “Let’s import GKE/Bluemix/AK...
Kubernetes etc.. & rancher 2.0 technical preview “Let’s import GKE/Bluemix/AK...
cyberblack28 Ichikawa
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
[Docker Tokyo #35] Docker 20.10
[Docker Tokyo #35] Docker 20.10
Akihiro Suda
Kubernetesと暮らすRancherな生活
Kubernetesと暮らすRancherな生活
Go Chiba
DockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのか
Emma Haruka Iwao
Introduce that Best practices for writing Dockerfiles
Introduce that Best practices for writing Dockerfiles
Yukiya Hayashi
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
Masahito Zembutsu
【さくらのクラウド】Jupyter Notebook スタートアップスクリプト
【さくらのクラウド】Jupyter Notebook スタートアップスクリプト
さくらインターネット株式会社
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Akihiro Suda
ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaS
npsg
Container Networking Deep Dive
Container Networking Deep Dive
Hirofumi Ichihara
DockerCon参加報告 (`docker build`が30倍以上速くなる話など)
DockerCon参加報告 (`docker build`が30倍以上速くなる話など)
Akihiro Suda
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
Kohei Tokunaga
Weaveを試してみた
Weaveを試してみた
Kazuto Kusama
20分でわかるgVisor入門
20分でわかるgVisor入門
Shuji Yamada
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
Arukas meet Mesos/Marathon
Arukas meet Mesos/Marathon
Shuji Yamada
kubernetes(GKE)環境におけるdatadog利用
kubernetes(GKE)環境におけるdatadog利用
Koichi HARUNA
OpenShift v3 Technical Overview
OpenShift v3 Technical Overview
Nakayama Kenjiro
OCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰する
Kohei Tokunaga
Mais procurados
(20)
Kubernetes etc.. & rancher 2.0 technical preview “Let’s import GKE/Bluemix/AK...
Kubernetes etc.. & rancher 2.0 technical preview “Let’s import GKE/Bluemix/AK...
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
[Docker Tokyo #35] Docker 20.10
[Docker Tokyo #35] Docker 20.10
Kubernetesと暮らすRancherな生活
Kubernetesと暮らすRancherな生活
DockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのか
Introduce that Best practices for writing Dockerfiles
Introduce that Best practices for writing Dockerfiles
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
【さくらのクラウド】Jupyter Notebook スタートアップスクリプト
【さくらのクラウド】Jupyter Notebook スタートアップスクリプト
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaS
Container Networking Deep Dive
Container Networking Deep Dive
DockerCon参加報告 (`docker build`が30倍以上速くなる話など)
DockerCon参加報告 (`docker build`が30倍以上速くなる話など)
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
Weaveを試してみた
Weaveを試してみた
20分でわかるgVisor入門
20分でわかるgVisor入門
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Arukas meet Mesos/Marathon
Arukas meet Mesos/Marathon
kubernetes(GKE)環境におけるdatadog利用
kubernetes(GKE)環境におけるdatadog利用
OpenShift v3 Technical Overview
OpenShift v3 Technical Overview
OCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰する
Semelhante a Docker入門 OSC 2018 Tokyo/Spring
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
Etsuji Nakai
Docker Tokyo
Docker Tokyo
cyberblack28 Ichikawa
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみた
npsg
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
cyberblack28 Ichikawa
近頃のDockerネットワーク
近頃のDockerネットワーク
Yuji Oshima
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Masahito Zembutsu
コンテナのネットワークインターフェース その実装手法とその応用について
コンテナのネットワークインターフェース その実装手法とその応用について
Tomofumi Hayashi
Lxc on cloud
Lxc on cloud
Yukihiko SAWANOBORI
[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)
[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)
Masahito Zembutsu
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
VirtualTech Japan Inc.
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Yuichi Ito
VPP事始め
VPP事始め
npsg
FD.io VPP事始め
FD.io VPP事始め
tetsusat
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Masahito Zembutsu
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
Kunihiro TANAKA
WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築
Saito5656
Circle ci and docker+serverspec
Circle ci and docker+serverspec
Tsuyoshi Yamada
Docker で xxxxxxサーバ を つくれませんでした
Docker で xxxxxxサーバ を つくれませんでした
krs_mizuno
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Ryo Nakamaru
20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会
Minehiko Nohara
Semelhante a Docker入門 OSC 2018 Tokyo/Spring
(20)
Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
Docker Tokyo
Docker Tokyo
Dockerと外部ルータを連携させる仕組みを作ってみた
Dockerと外部ルータを連携させる仕組みを作ってみた
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
近頃のDockerネットワーク
近頃のDockerネットワーク
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
コンテナのネットワークインターフェース その実装手法とその応用について
コンテナのネットワークインターフェース その実装手法とその応用について
Lxc on cloud
Lxc on cloud
[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)
[1C5] Docker Comose & Swarm mode Orchestration (Japan Container Days - Day1)
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
VPP事始め
VPP事始め
FD.io VPP事始め
FD.io VPP事始め
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築
Circle ci and docker+serverspec
Circle ci and docker+serverspec
Docker で xxxxxxサーバ を つくれませんでした
Docker で xxxxxxサーバ を つくれませんでした
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会
Mais de cyberblack28 Ichikawa
Introduction of kubernetes rancher
Introduction of kubernetes rancher
cyberblack28 Ichikawa
KubeCon + CloudNativeCon China 2018 Recap, let's go to Seattle
KubeCon + CloudNativeCon China 2018 Recap, let's go to Seattle
cyberblack28 Ichikawa
KubeCon + CloudNativeCon China 2018 Recap
KubeCon + CloudNativeCon China 2018 Recap
cyberblack28 Ichikawa
What's Rio 〜Standalone〜
What's Rio 〜Standalone〜
cyberblack28 Ichikawa
What's rancher v2.1.0 JA
What's rancher v2.1.0 JA
cyberblack28 Ichikawa
Introduction of k8s rancher
Introduction of k8s rancher
cyberblack28 Ichikawa
What's Rio
What's Rio
cyberblack28 Ichikawa
Rancher2.0でkubernetes
Rancher2.0でkubernetes
cyberblack28 Ichikawa
話題のkubernetesをRancher2.0で便利に使う!
話題のkubernetesをRancher2.0で便利に使う!
cyberblack28 Ichikawa
Jenkins X on GKE & Rancher2.0 on ORACLE Cloud
Jenkins X on GKE & Rancher2.0 on ORACLE Cloud
cyberblack28 Ichikawa
Rancher2.0とGKE
Rancher2.0とGKE
cyberblack28 Ichikawa
Rancher2.0とGKE
Rancher2.0とGKE
cyberblack28 Ichikawa
Whats service mesh & istio ?
Whats service mesh & istio ?
cyberblack28 Ichikawa
2017 KubeCon CNCon ver2
2017 KubeCon CNCon ver2
cyberblack28 Ichikawa
2017 Kubecon cncon recap ver1
2017 Kubecon cncon recap ver1
cyberblack28 Ichikawa
Kubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher 2.0 technical preview
cyberblack28 Ichikawa
Kubernetes etc.. & rancher2.0 technical preview
Kubernetes etc.. & rancher2.0 technical preview
cyberblack28 Ichikawa
try.rancher.comでrancherを始める
try.rancher.comでrancherを始める
cyberblack28 Ichikawa
コンテナ管理 プラットフォーム 比較 ~Kubernetes~予告編
コンテナ管理 プラットフォーム 比較 ~Kubernetes~予告編
cyberblack28 Ichikawa
Rancherでmesosとmarathonやってみた
Rancherでmesosとmarathonやってみた
cyberblack28 Ichikawa
Mais de cyberblack28 Ichikawa
(20)
Introduction of kubernetes rancher
Introduction of kubernetes rancher
KubeCon + CloudNativeCon China 2018 Recap, let's go to Seattle
KubeCon + CloudNativeCon China 2018 Recap, let's go to Seattle
KubeCon + CloudNativeCon China 2018 Recap
KubeCon + CloudNativeCon China 2018 Recap
What's Rio 〜Standalone〜
What's Rio 〜Standalone〜
What's rancher v2.1.0 JA
What's rancher v2.1.0 JA
Introduction of k8s rancher
Introduction of k8s rancher
What's Rio
What's Rio
Rancher2.0でkubernetes
Rancher2.0でkubernetes
話題のkubernetesをRancher2.0で便利に使う!
話題のkubernetesをRancher2.0で便利に使う!
Jenkins X on GKE & Rancher2.0 on ORACLE Cloud
Jenkins X on GKE & Rancher2.0 on ORACLE Cloud
Rancher2.0とGKE
Rancher2.0とGKE
Rancher2.0とGKE
Rancher2.0とGKE
Whats service mesh & istio ?
Whats service mesh & istio ?
2017 KubeCon CNCon ver2
2017 KubeCon CNCon ver2
2017 Kubecon cncon recap ver1
2017 Kubecon cncon recap ver1
Kubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher 2.0 technical preview
Kubernetes etc.. & rancher2.0 technical preview
Kubernetes etc.. & rancher2.0 technical preview
try.rancher.comでrancherを始める
try.rancher.comでrancherを始める
コンテナ管理 プラットフォーム 比較 ~Kubernetes~予告編
コンテナ管理 プラットフォーム 比較 ~Kubernetes~予告編
Rancherでmesosとmarathonやってみた
Rancherでmesosとmarathonやってみた
Docker入門 OSC 2018 Tokyo/Spring
1.
Docker入門 OSC2018 Tokyo/Spring 2.24 cyberblack28
2.
Profile Twitter:cyberblack28 Job Infrastructure Engineer Frontend Engineer Educational
Solutions Architect Community Hobby1: Music,Live,FES !! Hobby2: Take a picture !! https://www.flickr.com/photos/cyberblack ISBN-10: 4798155373 ISBN-13: 978-4798155371 第6章 Rancher2.0の 部分を執筆しました。 2018年3月15日発売
3.
• サーバ仮想化について • Dockerの基礎技術~Linuxコンテナー~ •
Dockerとは? • Dockerの基礎技術~Dockerイメージ~ • Dockerハンズオン~WordPressの環境作成~ • 参考図書・資料 • Dockerのインストール • Docker Hubからコンテナーイメージのpull • コンテナーの起動 • 起動したコンテナーの確認 • コンテナーとホストLinuxとの切替 • コンテナーの起動と停止 • DockerfileからWordPress環境作成 • コンテナーのcommit • コンテナーイメージをDocker Hubにpush • コンテナーのライフサイクル 3 アジェンダ 前半 • 複数コンテナー • Docker Compose • docker-compose.ymlの内容 • .envファイルの内容 • 主なコマンド 後半
4.
サーバ仮想化について ①非仮想化環境 4 物理ハードウェア OS アプリケーション
5.
サーバ仮想化について 5 物理ハードウェア ホストOS 仮想化アプリケーション 仮想マシンA アプリケーション ゲストOS 仮想マシンB アプリケーション ゲストOS 仮想マシンC アプリケーション ゲストOS ②ホストOS型仮想 ホストOS上の仮想化アプリケーション上で仮想マシンを稼働 させる。 VMware Workstation、Microsoft VirtualPC、VirtualBox
6.
サーバ仮想化について 6 物理ハードウェア ハイパーバイザー 仮想マシンA アプリケーション ゲストOS 仮想マシンB アプリケーション ゲストOS 仮想マシンC アプリケーション ゲストOS ③ハイパーバイザー型仮想(ソフトウェア) ホストOSを必要とせず、ハイパーバイザーというソフトウェ ア上で仮想マシンを稼働させる。 VMware ESXi、Xen/Citrix XenServer、Microsoft
Hyper-V
7.
サーバ仮想化について 7 物理ハードウェア ホストOS ハイパーバイザー 仮想マシンA アプリケーション ゲストOS 仮想マシンB アプリケーション ゲストOS ④ハイパーバイザー型仮想(カーネルモジュール) ホストOS(Linux)のカーネルモジュールのハイパーバイ ザー機能で仮想マシンを稼働させる。 Linux KVM
8.
Dockerの基礎技術~Linuxコンテナー~ Linuxコンテナーは、仮想マシン、ゲストOSという考え方はありません。(仮想ではない) Linuxカーネルの機能により、Linux上で稼働するユーザープロセスをグループに分割し、各グ ループごとに異なる環境(ファイルシステム、ネットワーク等)を割り当てたユーザー空間(コ ンテナー)のことです。 物理ハードウェア 非仮想化環境 ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス ・ ・ ・ カーネル空間 物理ハードウェア 分割した環境 ・ カーネル空間 ユ ー ザ ー プ ロ セ ス ・・ ユーザー空間
ユーザー空間 ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス ユーザー空間 OS コンテナ 8
9.
Dockerの基礎技術~Linuxコンテナー~ 物理ハードウェア コンテナーに属さないユーザー空間をLinuxホストと呼んだ りします。 ・ カーネル空間 ユ ー ザ ー プ ロ セ ス ・・ ユーザー空間 ユーザー空間 ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス 9 ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス ユーザー空間= Linuxホスト ユ ー ザ ー プ ロ セ ス ・・・ コンテナ
10.
Dockerの基礎技術~Linuxコンテナー~ ■namespace機能 namespace 説明 Mount namespace
ファイルシステムの分離 UTS namespace ホストネームの分離 IPC namespace IPC(プロセス間通信)の分離 User namespace ユーザ(UID/GID)の分離 PID namespace プロセステーブルの分離 Network namespace ネットワーク設定の分離 namespace機能は、ユーザープロセスのグループ分割を始め、ファイルシステム やネットワーク設定の分離等、いくつかの種類があります。 ■cgroups機能 cgroups機能は、それぞれのグループ(コンテナー)に対して、CPU、メモリの割 り当てを制御する機能です。 10 Linuxコンテナーを実現するための主なカーネル機能として、namespace機能と cgroups機能があります。
11.
Dockerとは? Linuxコンテナーは、Linuxカーネルの機能 であるnamespace機能やcgroups機能 を組み合わせて実現されるものです。 11
12.
Dockerとは? それでは、Dockerとは何でしょうか? 12
13.
Dockerとは? Dockerとは、Linuxカーネルの機能を統合し てコンテナーを作り上げる管理ツールです。 13
14.
Dockerの基礎技術~Dockerイメージ~ 物理ハードウェア pull カーネル空間 ユ ー ザ ー プ ロ セ ス コンテナー コンテナー ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス 14 ユーザー空間 Docker Hub (レジストリ) CentOS レポジトリ Ubuntu レポジトリ https://hub.docker.com/ push tag:latest tag:6.7 ・ ・ tag:latest tag:14.04 ・ ・ DockerHubからpullしたDockerイメージをコンテナーに当てることでCentOSや Ubuntuをコンテナーで起動できます。
15.
Dockerの基礎技術~Dockerイメージ構造~ 15 Docker イメージ 読み込み専用 (ReadOnly) ベースイメージ CentOS,Ubuntu等 イメージ層 コマンドごとに記録 ベースイメージ CentOS,Ubuntu等 イメージ層 コマンド(RUN)及び ビルドごとに記録 書き込み可能な イメージ層 読み込み専用 (ReadOnly) コンテナーが起動すると、 自動的に書き込み可能な レイヤーが作られる仕組 みです。 (1)Dockerイメージの構造 (2)Dockerコンテナー起動時の構造
16.
Dockerの基本機能 Docker Hub (イメージレジストリ) Dockerfile 16 Dockerイメージ アプリケーション フレームワーク アプリケーション ライブラリ OSイメージ Dockerサーバ ① Dockerイメージ自動作成 ②
Dockerイメージ の保存・公開 ③ Dockerサーバにイメージ配布・実行 イメージの 作成手順を記載 docker pull docker push docker build docker commit
17.
Dockerハンズオン~WordPressの環境作成~ 概要 • Dockerのインストール • Docker
Hubからコンテナーイメージのpull • コンテナーの起動 • 起動したコンテナーの確認 • コンテナーとホストLinuxとの切替 • コンテナーの起動と停止 • DockerfileからWordPress環境作成 • コンテナーのcommit • コンテナーイメージをDocker Hubにpush Docker Hub 仮想環境 (Virtualbox,VMWare) docker pull docker push docker run docker ps docker images docker start docker stop docker attach docker commit docker build docker rm docker rmi docker search docker login Dockerfile 17
18.
18 Docker実践入門 中井悦司さん SoftwareDesign 2015年12月号 参考図書・資料 http://www.slideshare.net/enakai/docker-with-rhel7 Docker with RHEL7
技術勉強会 http://www.slideshare.net/zembutsu/devsumi-2016-docker-introduction Docker 基礎講座 前佛雅人さん
19.
19 コマンドのテキスト 2.Docker pull commit
push Dockerfile WordPress環境をつくる~ Docker Compose~ https://goo.gl/nFJooG 1.Docker pull commit push Dockerfile WordPress環境をつくる https://goo.gl/fsDAAa コマンドのテキストは、Qiitaにあります!
20.
Dockerのインストール スライドに記載しているテキストは、以下をご利用ください。 http://qiita.com/cyberblack28/items/e3fb956f584094341c62 1.Dockerのインストール # yum -y
install docker 2.Dockerの自動起動設定及びサービスの起動 # systemctl enable docker.service # systemctl start docker.service 20 ディストリビューションのDockerをインストールする場合 # curl -fsSL https://get.docker.com/ | sh 最新のDockerをインストールする場合 ※本ハンズオンでは最新のDockerでは後半のビルドでエラーとなるのでyumでインストールします。 3.Dockerのバージョンを確認 # docker version
21.
Docker Hubからコンテナーイメージのpull CentOS6のコンテナーイメージをDocker Hubからダウンロードします。 1.searchサブコマンドでレジストリーを検索 #
docker search linaction INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/linaction/centos Sample CentOS6.7(Final) 0 2.コンテナーイメージをダウンロード # docker pull -a linaction/centos centos6: Pulling from docker.io/linaction/centos 47d44cb6f252: Already exists 6a7b54515901: Already exists e788880c8cfa: Already exists 1debf8fb53e6: Already exists 72703a0520b7: Already exists 68833123ff9e: Already exists ce76491a3be1: Already exists Digest: sha256:759ea478951130a32e9191daaffc9b4e3c5ad089331eccc32112e370bf7c9fb8 Status: Image is up to date for docker.io/linaction/centos 21
22.
3.ダウンロードしたイメージを確認 # docker images REPOSITORY
TAG IMAGE ID CREATED VIRTUAL SIZE docker.io/linaction/centos centos6 ce76491a3be1 About an hour ago 190.6 MB 22
23.
コンテナーの起動 CentOS6のイメージからコンテナーを起動してみましょう。 1.コンテナーを起動 # docker run
-it --name centos01 linaction/centos:centos6 /bin/bash [root@f2f7ecdecaf2 /]# # docker run -it -name centos01 linaction/centos:centos6 /bin/bash コマンド詳細 ① -i オプションは、コンテナーを実行したコマンドの標準出力に接続して、対話的に 操作できるようにします。 ② -t オプションは、コンテナーに疑似TTY端末を割り当てます。 ③ --nameオプションは、起動するコンテナーに名前を付与します。省略すると自動 的に名前が付与されます。 ④ linaction/centoos:centos6は使用するコンテナーイメージを指定します。 ⑤ /bin/bashは、コンテナー内で最初に実行するコマンドを指定します。 ①② ③ ④ ⑤ 23 新規にコンテナーを起動する度に自動的にランダムに割り当てられます。
24.
起動したコンテナーの確認 1.コンテナー環境のOSのバージョンを確認 [root@f2f7ecdecaf2 /]# cat
/etc/redhat-release CentOS release 6.7 (Final) 2.コンテナー内のプロセスを確認 [root@f2f7ecdecaf2 /]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 04:55 ? 00:00:00 /bin/bash root 13 1 0 04:59 ? 00:00:00 ps -ef 3.コンテナー環境のネットワークを確認 [root@f2f7ecdecaf2 /]# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:04 inet addr:172.17.0.4 Bcast:0.0.0.0 Mask:255.255.0.0 inet6 addr: fe80::42:acff:fe11:4/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:9 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:648 (648.0 b) TX bytes:738 (738.0 b) 24
25.
コンテナーとホストLinuxの切替 1.コンテナーの/bin/bashから抜けてホストLinuxに戻る 2.ホストLinuxから再度コンテナー内のbashに接続 # docker attach
centos01 [root@f2f7ecdecaf2 /]# Ctrl + P Q Ctrlキーを押したまま、PとQを順番に押す。 attachの後には、--nameで指定した名前を指定します。 25
26.
コンテナーの起動と停止 1.Linuxホストに戻る 2.コンテナーを停止 # docker stop
centos01 Ctrlキーを押したまま、PとQを順番に押す。 stopの後には、--nameで指定した名前を指定します。 3.停止したコンテナーを確認 4.コンテナーを起動 startの後には、--nameで指定した名前を指定します。 # docker start centos01 # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f2f7ecdecaf2 linaction/centos:centos6 "/bin/bash" 23 minutes ago Exited (137) 13 seconds ago centos01 5.起動したコンテナーを確認 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f2f7ecdecaf2 linaction/centos:centos6 "/bin/bash" 30 minutes ago Up 4 seconds centos01 26
27.
コンテナーの起動と停止 6.docker execコマンド # docker
exec -it centos01 /bin/bash docker execコマンドの場合は、exitしてもコンテナは終了せず、稼働し続けます。 27 attachは、コンテナーで起動しているPID=1のプロセスの標準入出力(STDIN/STDOUT) に接続するため、exitと同時にPID=1の/bin/bashが終了し、コンテナーも停止する。 exitの場合は、新たに/bin/bashのプロセスが起動し、exitしても新規の/bin/bashプロセ スが終了となるため、元々の/bin/bash自体は停止しないため、コンテナーは稼働状態と なる。 attachとexecの違い
28.
DockerfileからWordPress環境作成 1.コンテナーを停止 # docker stop
centos01 2.build用のディレクトリを作成 3.Dockerfileを作成 # cd build_wordpress # vi Dockerfile Dockerfileの内容は次のページを参照 :wq # mkdir ~/build_wordpress 4.Dockerfileを実行 # docker build -t linaction/wordpress:ver1.0 ~/build_wordpress ・ ・ Successfully built 0c4e45b86bcd 5.コンテナーを起動 # docker run -itd -p 8000:80 --name wordpress01 linaction/wordpress:ver1.0 3ce407416874308af370951ecf56c77b53e2aa405ba20aae51593fd3a0e2e108 -d オプションはバックグラウンドでの実行。 -p オプションはポートフォワーディング、Linuxホスト8000番→コンテナー80番に転送。 28
29.
#centos6のイメージを取得 FROM centos:centos6 #Dockerfile作成者 MAINTAINER linaction #タイムゾーンの設定 RUN
/bin/cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime #yumによるHTTPD,MySQL,PHP,tar,wgetのインストール RUN yum -y install httpd php php-mysql mysql-server tar wget php-gd #tmpディレクトリに移動 WORKDIR /tmp/ #wordpress一式のダウンロード RUN wget https://ja.wordpress.org/latest-ja.tar.gz #wordpressの展開 RUN tar xvfz ./latest-ja.tar.gz #ダウンロードしたwordpressの削除 RUN rm -f ./latest-ja.tar.gz #wordpressディレクトリ内のファイルをDocumentRootに移動 RUN mv wordpress/* /var/www/html/ #wordpressのconfigファイルをリネームして利用可能にする RUN cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php #wordpressのconfigファイルに必要な情報をsedコマンドで書き換える RUN sed -i -e 's/database_name_here/wordpress/g' -e 's/username_here/wordpress/g' -e 's/password_here/wppass/g' /var/www/html/wp-config.php #DocumentRootディレクトリの所有者をapacheに変更 RUN chown -R apache.apache /var/www/html/ #mysqldの起動、DB作成、ユーザ作成および権限設定、mysqldの停止 RUN service mysqld start && mysql -u root -e "CREATE DATABASE wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY 'wppass'; FLUSH PRIVILEGES;" && service mysqld stop #mysqld,httpdの起動スクリプトの作成 RUN echo -e "service mysqld startnservice httpd startn/bin/bash" > /startService.sh #mysqld,httpdの起動スクリプトの権限設定 RUN chmod o+x /startService.sh #公開ポート EXPOSE 80 #mysqld,httpdの起動スクリプトの実行 CMD /startService.sh Dockerfileの内容 29 命令 説明 FROM コンテナーイメージを指定 「リポジトリー:タグ名」 MAINTAINER コンテナーイメージ作成者名 ENV 環境変数を設定 RUN コマンドの実行 ADD ホストLinuxからファイルを設置 EXPOSE コンテナーで使用するポート番号を指定 CMD コンテナー起動時に実行するコマンドを指定 WORKDIR RUN,CMD,ENTRYPOINTを実行する時のワーキングディレ クトリを指定
30.
30 8000 Port 80 Port ポート フォワーディング アクセスの流れ
31.
コンテナーのcommit 1.ブラウザを起動し、「http://VirtualBoxのIPアドレス:8000/」にアクセスし、 WordPressの管理画面が表示されることを確認 2.コンテナーを停止 # docker stop
wordpress01 3.コンテナーを保存 # docker commit wordpress01 linaction/wordpress:ver1.0 cf75652d0f8a1509a5ad132ecf1214416c2b8dbf9fe9f93830ab8b51e738db73 4.コンテナーイメージを確認 # docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE linaction/wordpress ver1.0 cf75652d0f8a 56 seconds ago 474.9 MB docker.io/linaction/centos centos6 ce76491a3be1 2 hours ago 190.6 MB 31 # docker commit wordpress01 linaction/wordpress:ver1.0 コマンド詳細 ① ② ③ ① コンテナ名 ② リポジトリ名 ③ タグ名
32.
コンテナーイメージをDocker Hubにpush 事前に「https://hub.docker.com/」にアクセスし、Docker Hubのアカウントを 作成しておく必要があります。本勉強会ではlinactionのアカウントでデモします。 1.Docker
Hubにログイン # docker login Username: linaction Password: Email: Login Succeeded 2.Docker Hubにコンテナーイメージをpush # docker push linaction/wordpress Do you really want to push to public registry? [y/n]: y The push refers to a repository [docker.io/linaction/wordpress] (len: 0) ・ ・ Digest: sha256:97e3bd8b7ed451163af7284513d398c426c796451d343400a9859156c1a8c021 32
33.
3.リポジトリーを確認 # docker search
linaction INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/linaction/centos Sample CentOS6.7(Final) 0 docker.io docker.io/linaction/wordpress 33
34.
最後に全てのイメージと停止コンテナを削除して、pushしたwordpressのコンテ ナーイメージをダウンロードして起動してみましょう。 # docker rm
`docker ps -a -q` # docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1.停止コンテナの一括削除 # docker rmi `docker images -aq` # docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE 2.イメージの一括削除 # docker pull -a linaction/wordpress 3.wordpressのコンテナーイメージをダウンロード 4.コンテナーを起動 # docker run -itd -p 8000:80 --name wordpress01 linaction/wordpress:ver1.0 34
35.
コンテナーのライフサイクル 35 run(起動)、stop(停止)、start(再開)、commit(保存)、rm(削除)における、 コンテナーのライフサイクルは以下の様になります。 保存イメージ スナップショット プロセス スナップショット スナップショット 保存イメージ run
start stop rm commit コンテナーが破棄されます。 コンテナーを複製して、保存イ メージとして登録します。 コンテナーを停止するとプロセ スが終了し、コンテナーが残り ます。 コンテナーの起動と同時にス ナップショットが作成されます。
36.
複数のコンテナー 36 前半では、1コンテナーの中に、Apache、MySQLをインストールしました。 推奨されているコンテナーの利用方法として、「1コンテナ1プロセス」が あります。 これは大規模でオーケストレーションツール(Kubernetes等)と組み合わ せたマイクロサービスのシステム上で有用性があります。 もう少し小さい規模においては、例えば、WEB、APP、DB等のロール ベースに分けることが良いとされているケースもあります。 後半では、Docker Composeを利用して、WEB(WordPress)と DB(MySQL)を分けて、複数コンテナー管理をしてみようと思います。
37.
Docker Compose 37 docker compose
は docker-compose.ymlというファイルで構成を定 義します。YAML で体系的に構成を定義出来るので複数コンテナーの全体 像を管理しやすくなります。 docker run時のオプションも定義できるので、コマンド1回実行するだけ で複数のコンテナを起動できます。
38.
Docker Compose 38 1. Docker
Composeのインストール 2. docker-compose.ymlの作成 3. WordPressコンテナーとMySQLコンテナーの一括起動
39.
39 # curl -L
https://github.com/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`- `uname -m` > /usr/local/bin/docker-compose# docker ps -a 1.Docker Composeのインストール 2.ダウンロードしたバイナリに対して実行権限を追加 # chmod +x /usr/local/bin/docker-compose 3.インストール確認 # docker-compose -v docker-compose version 1.9.0, build 2585387 4.docker-compose.ymlの作成 # vim docker-compose.yml 5..envファイルの作成 # vim .env 6.コンテナー一括起動 # docker-compose up -d
40.
40 version: "2" services: wordpress: image: wordpress:latest ports: -
“8080:80" depends_on: - db environment: WORDPRESS_DB_HOST: "db:3306" env_file: .env db: image: mysql:latest env_file: .env volumes: - db-data:/var/lib/mysql volumes: db-data: driver: local 定義 説明 version バージョン宣言 services:サービス設定カテゴリ image コンテナを実行時に元となるイメージを指定し ます。リポジトリ名・タグあるいはイメージ ID の一部を指定 ports 公開用のポート depends_on サービス間の依存関係を指定 environment 環境変数を追加します。 env_file ファイル上の定義から環境変数を追加 volumes パスをボリュームとしてマウントします。オプ ションとしてホスト側のパスを指定(ホスト:コ ンテナ)したり、アクセスモードを指定します (ホスト:コンテナ:ro)。 volumes:ボリューム設定カテゴリ driver ボリューム・ドライバがどのボリュームを使う べきかを指定します。デフォルトは local その他詳細は、こちらのリファレンスを参照。 http://docs.docker.jp/compose/compose-file.html docker-compose.ymlの内容
41.
41 WORDPRESS_DB_NAME=wordpress WORDPRESS_DB_USER=wp_user WORDPRESS_DB_PASSWORD=hogehoge MYSQL_RANDOM_ROOT_PASSWORD=yes MYSQL_DATABASE=wordpress MYSQL_USER=wp_user MYSQL_PASSWORD=hogehoge 定義 説明 WORDPRESS_DB_NAME WORDPRESSのDB名 WORDPRESS_DB_USER
WORDPRESSのDBユーザ名 WORDPRESS_DB_PASSWORD WORDPRESSのDBパスワード MYSQL_RANDOM_ROOT_PASSWORD yesを設定することで、rootユーザのための初期パスワードを (pwgenを利用して)ランダムで生成 MYSQL_DATABASE WORDPRESS用のDB名 MYSQL_USER WORDPRESS用のDBユーザ名 MYSQL_PASSWORD WORDPRESS用のDBパスワード .envファイルの内容
42.
42 コマンド 説明 up コンテナーの生成/起動 down
全てのコンテナの停止と同時削除 scale 生成するコンテナー数の指定 ps コンテナーの一覧表示 logs コンテナーログ出力 run コンテナーの実行 start コンテナーの起動 stop コンテナーの停止 restart コンテナーの再起動 kill 実行中のコンテナーの強制停止 rm コンテナーの削除 主なコマンド その他詳細は、こちらのリファレンスを参照。 http://docs.docker.jp/compose/reference/overview.html
43.
43 LB Internet オーケストレーション ツール イメージ レジストリ 本ハンズオンの構成 オーケストレーショ ンツールを利用した 冗長構成
Baixar agora