参考
- スライド: お手軽環境構築!はじめてのDocker講座 - Speaker Deck
- リポジトリ: miyakei1225/Docker-Hands-on: Dockerハンズオン用のリポジトリです! (github.com)
Dockerとは
コンテナ型の仮想環境。
例: Node.jsのインストール
Dockerを使わない場合
各個人でインストールする必要があるため、バージョンなどの微妙な差が出てきてしまう。OS間での差異もあったりするので厄介。
→ バグの原因になったりする
使う場合
全員が同じ環境を作れる!
削除が簡単!あれこれ開発環境を入れてしまう自分みたいな人間におすすめ
構成
以下の3つを覚えておけば問題ナシ
- イメージ
- コンテナ
- ボリューム
イメージ
Dockerの設計図。コンテナを作るための設定を行う。
イメージを元にコンテナを起動することで、それぞれの開発環境を作れる。
イメージの共有から他のメンバーが同様の環境を作れる。
Docker Hubを使っても良いが、GitHubのほうが一般的。
Recent Tagsについて
イメージのバージョンのこと。
Dockerに対応しているバージョンが記載されている。
Docker Tagには何を使うのか?-> Alpine Linux多い
参考: 軽量Dockerイメージに安易にAlpineを使うのはやめたほうがいいという話 - inductor's blog
コンテナ
アプリの実行環境。
コンテナは作成・起動・削除が可能。
Docker Desktopでこの作業が楽に行える。
ボリューム
データの永続化を担当する場所。永続化: 外部HDDみたいなもの
基本的にコンテナを削除するとデータは消える。
外部にデータ保管場所が欲しい!!これがボリューム。
コンテナの外にボリュームが乗っかっている。
Dockerの詳しい構成は後に調べる #task
yamlについて
設定をcompose.yaml
に記載する。
構文はGitHub Actionsの際に触っているのでだいたいわかる。
ホスティングについて
GCP, AWSやVercel, Cloudflareも使用できる。
参考: Docker + React + TypeScript の 環境構築方法 #Docker - Qiita
Docker Compose
複数コンテナの定義と実行を行う。
正体はyamlファイル。
以下のコマンドを使用する。
例:
docker-compose build # イメージ構築
docker-compose up -d # コンテナ作成 -dでバックグラウンドで実行できる
docker-compose stop # 停止
docker-compose down # 停止と削除
基本的にはdocker-compose stop
を使うことが多いそう。
TTYについて
false
にするとどうなるか?→ 実行してすぐ終了してしまう。
TTY: 標準入出力先のデバイスのこと。
ttyは仮想端末を配置するコマンドである。
参考: DockerのTTYって何? (zenn.dev)
DockerFile
コンテナのビルド時や起動時の作業を1つにまとめたもの。
compose.yaml
との違いは、yamlは起動やその諸設定を行える。DockerFileでは起動時やビルド時の作業を定義する。
docker, docker-composeコマンドの違い
1つのコンテナを起動するか、2つ以上のコンテナを起動するかの違い。
コマンドオプションについて
- sh -c
- コマンドを実行するときに使われる
- shでシェル実行、-cで以降が文字列であると 示す