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
Hank Ehly
January 19, 2023
Technology
0
490
【初心者/ハンズオン】Dockerコンテナの基礎知識
Hank Ehly
January 19, 2023
Tweet
Share
More Decks by Hank Ehly
See All by Hank Ehly
Fivetranでデータ移動を自動化する
hankehly
0
560
Celeryの紹介と本番運用のTips
hankehly
0
790
ChatGPTを活用した 便利ツールの紹介
hankehly
1
1.2k
Efficient Energy Analytics with Airflow, Spark, and MLFlow
hankehly
0
300
Deferrable Operators入門
hankehly
0
600
Compositeパターン: オブジェクトの階層関係をエレガントに表現する方法
hankehly
0
300
10/29 Airflowの基礎を学ぶハンズオンワークショップ
hankehly
0
240
システム/データ品質保証のための Airflow 活用法
hankehly
0
580
海外の記事からコードレビューのBest Practiceを集めてみました
hankehly
0
950
Other Decks in Technology
See All in Technology
Amazon Qで2Dゲームを作成してみた
siromi
0
110
データ基盤の管理者からGoogle Cloud全体の管理者になっていた話
zozotech
PRO
0
350
Bet "Bet AI" - Accelerating Our AI Journey #BetAIDay
layerx
PRO
4
1.5k
人に寄り添うAIエージェントとアーキテクチャ #BetAIDay
layerx
PRO
8
2k
ホリスティックテスティングの右側も大切にする 〜2つの[はか]る〜 / Holistic Testing: Right Side Matters
nihonbuson
PRO
0
590
OPENLOGI Company Profile for engineer
hr01
1
37k
家族の思い出を形にする 〜 1秒動画の生成を支えるインフラアーキテクチャ
ojima_h
1
480
Amazon Q Developerを活用したアーキテクチャのリファクタリング
k1nakayama
2
190
Claude Codeが働くAI中心の業務システム構築の挑戦―AIエージェント中心の働き方を目指して
os1ma
9
1.5k
金融サービスにおける高速な価値提供とAIの役割 #BetAIDay
layerx
PRO
1
740
AI関数が早くなったので試してみよう
kumakura
0
140
LTに影響を受けてテンプレリポジトリを作った話
hol1kgmg
0
300
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Adopting Sorbet at Scale
ufuk
77
9.5k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Statistics for Hackers
jakevdp
799
220k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
What's in a price? How to price your products and services
michaelherold
246
12k
Documentation Writing (for coders)
carmenintech
73
5k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
332
22k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.7k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Transcript
【初心者/ハンズオン】 Dockerコンテナの基礎知識 2023/01/19 (木) まだの方は以下を進めてください! 1. Dockerのインストール https://docs.docker.com/get-docker/ 2. Dockerhubのアカウント作成
https://hub.docker.com/ https://github.com/hankehly/docker-core-knowledge-workshop (サンプルコード)
よろしくお願いします • Hank Ehly(名:ハンク 姓:イーリー) • ENECHANGE株式会社(エンジニア) • hankehly.com •
qiita.com/hankehly • github.com/hankehly • linkedin.com/in/hankehly • twitter.com/hankehly • connpass.com/user/hankehly
アジェンダ 1. コンテナ技術の概要 2. コンテナのメリット 3. ハンズオン課題(コードエディターのご準備お願いします)
1. コンテナ技術の概要
コンテナ技術の概要 > VM(バーチャルマシン)の仕組み ハードウェア ハイパーバイザー OS アプリケーション 仮想マシンを管理する ソフトウェア VM(バーチャルマシン)
物理的なサーバー 仮想マシン 1 仮想マシン n 1仮想環境に複数のアプリケーション OS アプリケーション
コンテナ技術の概要 > Dockerの仕組み ハードウェア ホストOS Docker Engine (バックグラウンドプロセス) Dockerコンテナ コンテナ1
コンテナ2 コンテナn 1コンテナに1つのプロセス
コンテナ技術の概要 > 重要な用語 コンテナイメージは、ソースコードと、そのソースコードを実行するために 必要なシステムライブラリーや依存ファイルすべてを同梱したファイル $ docker run my_app $
docker build -t my_app . コンテナは、コンテナイメージの実行可能なインスタンス Dockerは、コンテナイメージの管理と実行を行うツール
コンテナ技術の概要 > 開発の流れ $ docker build -t my_app . $
docker push my_app $ docker run my_app Step 1: コンテナイメージを作る Step 3: コンテナイメージをPushする Step 2: コンテナを起動する
2. コンテナのメリット
コンテナのメリット > コンテナを使わないAさん v1.21 v10 共有のシステムソフトウェア Ruby v2.7.6 PostgreSQLバージョンを上げた いけど、他のアプリが影響を受け
ちゃうよな… ポイント: • バージョン管理が厄介な時がある • 変更のリスク
コンテナのメリット > コンテナを使うBさん v1.21 コンテナ v14 コンテナ v7.0.4 コンテナ v1.14
コンテナ ポイント: • バージョンの共存が可能 • アプリケーションの分離 v10 コンテナ v5.2.8 コンテナ 案件AでPostgreSQL 14 案件BでPostgreSQL 10 … Aが異常終了してもBへの影響なし アプリケーション アプリケーション
コンテナのメリット > コンテナは可搬性(portability)がある FROM ruby:3.2.0 WORKDIR /app COPY hello_world.rb .
CMD ruby hello_world.rb $ docker build -t my_container . $ docker push my_container push $ docker run my_container Hello world pull (コンテナイメージの作成)
• 学習コストがある • 同じコンテナが WindowsとLinux どちらでも 動かない コンテナのメリット > メリット・デメリット
• 独立している(例: PostgreSQLバージョンを 複数同時に使える) • dev/stg/prodの差異を少なくできる • クラウドを変えやすくなる (AWS→GCP) • 共有しやすい • 再現性 メリット デメリット
3. ハンズオン課題 続きはVisualCodeで… https://github.com/hankehly/docker-core-knowledge-workshop