はじめに
個人的に書き留めていた記事を公開する
Docker
Dockerの基本
現在ではdocker-composeを使うのが主流
images
# Imageを作成 Dockerfileから作る
# -t [名前]:タグ [dockerfile-path]で名前をつける
docker image build -t hoge:latest [Deckerfile-path]
# Docker Imageを全て表示
docker images
# Docker Imageを削除
docker rmi [id or name]
container run
# Dockerコンテナを作成して起動
docker container run --name <任意の名前> <Image名>
# option
--name [コンテナ名] # コンテナ名を指定
-p ホストのポート番号:コンテナのポート番号 # ポートを設定
-it # コンテナ内部に入る
--rm # コマンドの実行が完了した時、コンテナを破棄
-d # バックグラウンドでコンテナを実行
-v ホストのパス:コンテナのパス # volumeを指定する
-e TEST_ENV=Tee # ENV 環境変数
# コマンド例
docker run -it --name hoge -v Ubuntu:20.04
docker run --name sample --rm -d -p 8000:8000 sample
# nginxは/usr/share/nginx/html/にrootのhtmlがある
# Imageでwebserverをinstallしている場合ポートを開ける必要がある
docker run -v /Users/tee/Desktop/test/:/usr/share/nginx/html --name mynginx -p 8080:80 nginx:1.16
container
# 起動中のコンテナの中でコマンドを実行する
docker exec [id or name] [実行したいコマンド]
# コンテナを確認
docker ps -a
# コンテナを再開
docker start [id or name]
# コンテナを止める
docker down [id or name]
# コンテナを再起動
docker restart [id or name]
# 停止中のコンテナを削除
docker rm [id or name]
一括
# Imageを全て削除
docker image prune -a
# コンテナを全て削除
docker container prune
# コンテナにホストからファイルをコピー # 逆も可
docker cp [host-path] [id]:[dorcerのpath]
# ログ表示 # -fでリアルタイム
docker logs [id or name]
# 起動中のコンテナの中に入る
docker exec [name or id] /bin/bash
# 詳細情報を表示
# ENVを確認したりするのに使う
docker inspect [コンテナ名]
消す系コマンド
## 一括コンテナ停止
docker stop $(docker ps -q)
## 一括コンテナ削除
docker rm $(docker ps -q -a)
## 一括イメージ削除
docker rmi $(docker images -q)