😽
Docker&Docker Compose コマンド備忘録
Docker コマンド
# Docker イメージの取得
$ docker pull <イメージ名>
# 取得済みイメージの一覧
$ docker images
# コンテナの作成と実行
$ docker run --name <コンテナ名> -d -p <ホスト側のポート番号>:<コンテナ側のポート番号> <イメージ名(リポジトリ:タグ)> -v <ホスト側のパス>:<コンテナ内のパス> -e <環境変数名=値> --link <コンテナ名:リンク名>
# -d(--detach)は、バックグランドでコンテナを起動する
# -v(--volume)は、ボリュームのマウントを行う
# -e(--env)は、インラインで環境変数を与える
# --linkは、他のコンテナへのリンクを追加(※このやり方はレガシーらしい)
# コンテナの状態確認
$ docker ps
# コンテナの停止(SIGTERM の後に SIGKILL)
$ docker stop <コンテナ名>
## -a をつけると、終了したコンテナを確認できる
# コンテナの停止(SIGKILL)
$ docker kill <コンテナ名>
## 本番環境では使わないこと。
# コンテナの再実行
$ docker start <コンテナ名>
# コンテナの削除
$ docker rm <コンテナ名>
# コンテナを停止する前に行うと、以下のようなエラーが発生する
# Error response from daemon: You cannot remove a running container f6b67000562d32326cf25b33e9f5f356abee67cd620f2ffffc382b216a06286d. Stop the container before attempting removal or force remove
# Dockerイメージの削除
$ docker rmi <イメージ名>
# Docker イメージの作成
docker build .
# パスにあるソースコードから新しいイメージを作成
# -t は <name:tag>形式で、イメージの名前を決定する
# 実行中のコンテナでコマンドを実行
$ dockr exec <コンテナ> <コマンド>
# bashでインタラクティブモード実行
docker exec -it <コンテナ> bash
# ボリュームの作成
$ docker volume create <ボリューム名>
# ボリューム一覧
$ docker volume ls
# 未使用のVolumeを一括削除
$ docker volume prune
# ボリュームの削除
$ docker volume rm <ボリューム名>
# ボリュームの詳細
$ docker inspect <ボリューム名>
# ネットワークの作成
$ docker network create --driver bridge isolated_network
Docker Compose コマンド
# 新規作成して起動
$ docker-compose up -d
# -d:デタッチモード
# 削除して停止
$ docker-compose down --volumes
# --volumes: データボリュームも削除
# 実行中のプロセス確認
$ docker-compose ps
# コンテナサービスに対してコマンド実行
$ docker-compose run web env
# サービスの停止
$ docker-compose stop
# サービスの開始
$ docker-compose start
# コンテナ内でワンライナーで実行
$ docker-compose exec <サービス名> <コマンド>
# シェルを指定して入る
$ docker-compose exec <サービス名> /bin/bash
# アプリケーションのログを見る(追跡モード)
$ docker-compose logs -f <サービス名>
その他
コマンドライン補完
mac
$ brew install bash-completion
$ curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose > /usr/local/etc/bash_completion.d/docker-compose
Discussion