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
azul915
June 11, 2019
Programming
1
140
Docker社内勉強会用
azul915
June 11, 2019
Tweet
Share
Other Decks in Programming
See All in Programming
Ruby Parser progress report 2025
yui_knk
1
460
Rancher と Terraform
fufuhu
2
550
デザイナーが Androidエンジニアに 挑戦してみた
874wokiite
0
550
Navigation 2 を 3 に移行する(予定)ためにやったこと
yokomii
0
350
奥深くて厄介な「改行」と仲良くなる20分
oguemon
1
570
Compose Multiplatform × AI で作る、次世代アプリ開発支援ツールの設計と実装
thagikura
0
170
GitHubとGitLabとAWS CodePipelineでCI/CDを組み比べてみた
satoshi256kbyte
4
250
Navigating Dependency Injection with Metro
zacsweers
3
3.5k
機能追加とリーダー業務の類似性
rinchoku
2
1.3k
個人軟體時代
ethanhuang13
0
330
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
420
CJK and Unicode From a PHP Committer
youkidearitai
PRO
0
110
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
A designer walks into a library…
pauljervisheath
207
24k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
KATA
mclloyd
32
14k
How to train your dragon (web standard)
notwaldorf
96
6.2k
The Cult of Friendly URLs
andyhume
79
6.6k
Speed Design
sergeychernyshev
32
1.1k
Transcript
Docker超入門 ハンズオン ~簡単に壊せることの快適さ~
今日のゴール • Dockerについてなんとなくわかる • イメージを落としてコンテナを立てられる • Dockerfileでビルドができる • docker-composeでオーケストレーション ができる
やること • Dockerとは • なにが嬉しいの? • 課題 • イメージからコンテナを立てる •
Dockerfileでイメージをビルドする • コンテナ間通信 • オーケストレーションする
Dockerとは • コンテナ型仮想化技術 • 環境が分離できる • ホストOSの中でゲストOSを起動したり(= ホスト型)、ハイパーバイザ でゲストOSを起動したりする(= ハイパーバイザ型)のではなく、ホス
トOSのリソースを名前空間で区切って、ライブラリやアプリなどを閉 じ込めている(= コンテナ型) • 起動が速い • 省リソース • 壊せる(ロールバックと試行錯誤ができてアホにとって神)
ホスト型とコンテナ型比較
なにが嬉しいの? • 移植性(= 本番環境だと動かないリスクを減らせる) • 開発環境, テスト環境, 本番環境をすべてコンテナとして管理 • コンテナのもとになるものをイメージとしてDockerHubで共有
≒イン スタンスとクラス
image DockerHub
なにが嬉しいの? • 相互接続性(= 大手ベンダーソフトウェア、オープンソースとの 連携) • ECS:コンテナ化されたアプリを AWS で実行およびスケール •
EKS:コンテナ化されたアプリのデプロイ、管理、スケールを Kubernetes を使って AWS で実行 • CI/CD:Jenkins, CircleCI(コンテナ内でユニットテスト)
None
課題 • データの保存先 • 永続的データやログのコンテナ内に保存する破棄時に消える • システム設計 • どの単位でコンテナを作るかというポリシーを議論すべき •
デザインパターンやベストプラクティスの知見が乏しい • コンテナの運用管理 • ログの集中管理方法、コンテナの監視 • Linux上のみ • Docker for Windowsではハイパーバイザに仮想マシンを作成してその 中でLinuxコンテナを実行している
Dockerを触ってみる
イメージからコンテナを立てる
イメージからコンテナを立てる
イメージからコンテナを立てる => localhost:8080にアクセスしてみると、 コンテナの80番に フォワードされている
Dockerfileでイメージをビルドする • Dockerイメージを自動で作成するためのテキストファイル • docker buildコマンドを使う Dockerイメージ オリジナルの イメージ +
docker build
Dockerfileでイメージをビルドする
Dockerfileでイメージをビルドする ⚫ mkdir –p ~/redis; cd ~/redis ⚫ vim Dockerfile
⚫ docker build -t original/redis . ⚫ docker run -d [imageID]
コンテナ間通信 ⚫Redisコンテナに接続するためのubuntuコンテナを別で 立てる ⚫linkオプションで通信したいイメージを指定する ⚫エイリアスを指定する
コンテナ間通信
オーケストレーションする • linkは複数あると管理や実行が面倒 • 何回もdocker run打つのだるい • テキスト形式で宣言的に書ける • docker-compose(公式ライブラリ)を使う
• docker-composeのインストール
オーケストレーションする
オーケストレーションする ⚫ mkdir –p ~/wordpress; cd ~/wordpress ⚫ vim docker-compose.yml
⚫ docker-compose –version ⚫ docker-compose build ⚫ docker-compose up -d
オーケストレーションする => localhost:8081にアクセス