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
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
520
Bytecode Manipulation 으로 생산성 높이기
bigstark
2
390
AIプログラマーDevinは PHPerの夢を見るか?
shinyasaita
1
170
PicoRuby on Rails
makicamel
2
110
ReadMoreTextView
fornewid
1
490
Cline指示通りに動かない? AI小説エージェントで学ぶ指示書の書き方と自動アップデートの仕組み
kamomeashizawa
1
590
Result型で“失敗”を型にするPHPコードの書き方
kajitack
4
530
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
210
0626 Findy Product Manager LT Night_高田スライド_speaker deck用
mana_takada
0
130
Julia という言語について (FP in Julia « SIDE: F ») for 関数型まつり2025
antimon2
3
980
設計やレビューに悩んでいるPHPerに贈る、クリーンなオブジェクト設計の指針たち
panda_program
6
1.7k
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
170
Featured
See All Featured
Building an army of robots
kneath
306
45k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
Rails Girls Zürich Keynote
gr2m
94
14k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
GitHub's CSS Performance
jonrohan
1031
460k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Side Projects
sachag
455
42k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Into the Great Unknown - MozCon
thekraken
39
1.9k
Six Lessons from altMBA
skipperchong
28
3.9k
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にアクセス