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
270
【初心者/ハンズオン】Dockerコンテナの基礎知識
Hank Ehly
January 19, 2023
Tweet
Share
More Decks by Hank Ehly
See All by Hank Ehly
Fivetranでデータ移動を自動化する
hankehly
0
300
Celeryの紹介と本番運用のTips
hankehly
0
160
ChatGPTを活用した 便利ツールの紹介
hankehly
1
1k
Efficient Energy Analytics with Airflow, Spark, and MLFlow
hankehly
0
160
Deferrable Operators入門
hankehly
0
220
Compositeパターン: オブジェクトの階層関係をエレガントに表現する方法
hankehly
0
160
10/29 Airflowの基礎を学ぶハンズオンワークショップ
hankehly
0
160
システム/データ品質保証のための Airflow 活用法
hankehly
0
430
海外の記事からコードレビューのBest Practiceを集めてみました
hankehly
0
700
Other Decks in Technology
See All in Technology
LangSmith入門―トレース/評価/プロンプト管理などを担うLLMアプリ開発プラットフォーム
os1ma
5
750
Microsoft Intune 勉強会 第 2 回目
tamaiyutaro
2
480
コードや知識を組み込む / Incorporate Code and knowledge
ks91
PRO
0
150
MixIT 2024 - Pulumi : Gérer son infra avec son langage de programmation préféré
ju_hnny5
1
120
R3のコードから見る実践LINQ実装最適化・コンカレントプログラミング実例
neuecc
3
2.9k
認知症フレンドリーテックとスタックチャン
naokiuc
0
290
20分で完全に理解するGrafanaダッシュボード
hamadakoji
5
930
TechFeed Experts Night#27 〜 フロントエンドフレームワーク最前線 (Svelte)
baseballyama
2
600
社内アプリで Cloudflare D1を プロダクト運用してみた体験談(Tokyo)
haochenx
0
120
Next.js に疲れた私は Vue3 に癒やされた
akagire
0
140
開発パフォーマンスを最大化するための開発体制
ham0215
7
1.2k
One engineer company with Ruby on Rails
rstankov
2
440
Featured
See All Featured
BBQ
matthewcrist
80
8.8k
Code Reviewing Like a Champion
maltzj
515
39k
Raft: Consensus for Rubyists
vanstee
133
6.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
21
1.6k
Infographics Made Easy
chrislema
238
18k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
Build your cross-platform service in a week with App Engine
jlugia
226
17k
Rails Girls Zürich Keynote
gr2m
91
13k
Making Projects Easy
brettharned
109
5.5k
Happy Clients
brianwarren
92
6.4k
Writing Fast Ruby
sferik
622
60k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
15
1.6k
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