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
150
Docker社内勉強会用
azul915
June 11, 2019
Tweet
Share
Other Decks in Programming
See All in Programming
nilとは何か 〜interfaceの構造とnil!=nilから理解する〜
kuro_kurorrr
3
1.9k
Codexに役割を持たせる 他のAIエージェントと組み合わせる実務Tips
o8n
4
1.3k
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
株式会社 Sun terras カンパニーデック
sunterras
0
2.1k
encoding/json/v2のUnmarshalはこう変わった:内部実装で見る設計改善
kurakura0916
0
400
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
5
390
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
500
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
760
モジュラモノリスにおける境界をGoのinternalパッケージで守る
magavel
0
3.5k
DSPy入門 Pythonで実現する自動プロンプト最適化 〜人手によるプロンプト調整からの卒業〜
seaturt1e
1
680
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
170
Ruby x Terminal
a_matsuda
7
590
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
14k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
540
Color Theory Basics | Prateek | Gurzu
gurzu
0
240
Thoughts on Productivity
jonyablonski
75
5.1k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
90
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
190
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
630
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
230
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Building AI with AI
inesmontani
PRO
1
790
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
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にアクセス