Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
290
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
300
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
4.2k
チームをチームにするEM
hitode909
0
400
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
130
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
400
SwiftUIで本格音ゲー実装してみた
hypebeans
0
500
AtCoder Conference 2025
shindannin
0
670
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
8
3.4k
Implementation Patterns
denyspoltorak
0
120
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
390
Deno Tunnel を使ってみた話
kamekyame
0
250
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
110
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.3k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Are puppies a ranking factor?
jonoalderson
0
2.4k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
400
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Navigating Team Friction
lara
191
16k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The agentic SEO stack - context over prompts
schlessera
0
560
Making Projects Easy
brettharned
120
6.5k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
340
Chasing Engaging Ingredients in Design
codingconduct
0
85
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にアクセス