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
150
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Docker社内勉強会用
azul915
June 11, 2019
Other Decks in Programming
See All in Programming
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
120
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
110
이 함수, 실패하면 어떻게 되나요? null부터 Rich Errors까지, Kotlin 에러 처리 15년
haeti2
0
140
初めての模倣学習とVLA
natsutan
0
480
信頼性の目標を誰も求めてない
shubox
0
490
Laravelのアプリケーションをどこにデプロイするか #ツナギメオフライン.9
akase244
0
120
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
130
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
150
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
270
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
140
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
150
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
Abbi's Birthday
coloredviolet
3
9.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Bash Introduction
62gerente
615
220k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
820
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
660
Become a Pro
speakerdeck
PRO
31
6.2k
Designing for humans not robots
tammielis
254
26k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
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にアクセス