Dockerとは
パソコン上でLinuxなどを動かせるエミュレーターのようなもの
コンテナ型の仮想環境を作成、配布、実行するためのプラットフォーム
Dockerのメリット
- Dockerがあるとアプリケーションを簡単に開発・デプロイできる
- アプリケーションを動作させるのに必要なものをひとまとめにして配布できる
- ローカルで開発したものをテスト環境、本番環境にそのまま入れることができる(差分をなくす)
Dockerの基本的な仕組み
イメージとコンテナがDockerの基本で、イメージからコンテナを作成できる
Dockerイメージ
- コンテナの元になるテンプレート
- OSを実行するアプリケーションや設定をまとめたもの
- Dockerレジストリから取得するパターンとdockerfileで自身で作成するパターンがある
docker image build コマンドでイメージを作成することができる
docker image build [オプション] PATH
オプション
-t タグをつける
-f ファイル名を指定(Dockerfile以外の名前の場合)
Dockerコンテナ
- イメージを元に作成される
- OSとアプリケーションが動く実行環境
docker container runコマンドでコンテナを起動することができる
docker container run [オプション] イメージ [コマンド]
オプション
-d コンテナをバックグラウンドで実行する
—name コンテナに名前をつける
-it 標準出力とターミナルをアッタッチする(コンテナ上で実行される操作がシェルの場合コンテナが終了しなくなる)
コマンドいろいろ
コンテナのポートをホストに公開する
docker container run -p 8080:80 myapache:latest
ログの確認
docker container logs [オプション] コンテナ
コンテナ内でコマンド操作
docker container exec [オプション] コンテナ コマンド [引数]
オプション
-it 標準出力とターミナルをアタッチする->シェルを終了させない
コンテナの停止
docker container stop [オプション] コンテナ
コンテナの停止(起動中のコンテナをまとめて)
docker container stop $( docker container ls -q)
コンテナの削除
docker container rm [オプション] コンテナ
コンテナの削除(全て)
docker container rm $( docker container ls -q -a)
コンテナの削除(起動中のコンテナを強制的に)
$docker container rm -f apache
イメージの削除
docker image rm [オプション] イメージ
Dockerの掃除
未使用のコンテナ、ネットワーク、イメージを削除する
docker system prune [オプション]
オプション
-a 全て削除する
—volumes ボリュームを削除する
-f // 強制的に