地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【Docker】コマンドチートシート

#バージョン確認
$ docker version
$ docker-compose version
$ docker-machine version

#停止中のコンテナ、使っていないイメージやネットワークをまとめて削除
$ docker system prune

#仮想マシンの確認
$ docker-machine ls

#仮想マシンを起動
$ docker-machine start

#仮想マシンを停止
$ docker-machine stop

#イメージの確認
$ docker images

#イメージの検索
$ docker search centos

#DockerHubからイメージをダウンロード
$ docker pull centos:7

#イメージ削除
$ docker rmi centos:7

#不要なイメージをすべて削除
$ docker image prune

#使用していないイメージをすべて削除
# docker image prune -a

#コンテナの確認
$ docker ps

#コンテナの確認(すべて)
$ docker ps -a

#コンテナ作成
#-d:バックグラウンド実行、-p:「ホスト:コンテナ」でポート転送、--name:コンテナ名を設定
$ docker run -d -p 8080:80 --name nginx nginx

#コンテナ作成
#-it:ホストとコンテナの標準入出力をつなげる
$ docker run -it -d -p 8080:80 --name centos centos:7

#コンテナ起動
$ docker start nginx

#コンテナ停止
$ docker stop nginx

#コンテナ削除
$ docker rm centos

#コンテナに接続(ログイン)
#新たにbashプロセスを作成して接続する
$ docker exec -it centos bash

#コンテナの接続(ログイン)
#標準入出力に接続しているため、exitでログアウトするとコンテナ自体が停止する
$ docker attach centos

#コンテナからイメージを新たに作成
$ docker commit centos original-nginx

#コンテナ起動と同時にログインし、ログアウトでコンテナ削除
#Dockerfile作成時など、コマンド実行とDockerfile記載を繰り返す際に便利
$ docker run -it -p 8080:80 --rm --name centos centos:7 bash

#Dockerfileからイメージ作成(ビルド)
#-t:イメージ名、.:Dockerfileのパス
#イメージ名のタグを省略するとlatestとなる
$ docker build -t original-nginx .

#Dockerfileから作成したイメージでコンテナ起動
$ docker run -it -d -p 8080:80 --name build-nginx original-nginx

#ネットワークを確認
$ docker network ls

#ネットワークを作成
$ dockernetwork create test-network

#Docker Composeビルド
$ docker-compose build

#Docker Composeビルド
#--no-cache:キャッシュを使用しない、ビルド対象をappサービスのみとする
$ docker-compose build app --no-cache

#Docker Composeコンテナ作成・起動
#-d:バックグラウンド実行
$ docker-compose up -d

#Docker Compose appサービスからコンテナ作成・起動
$ docker-compose up -d app

#コンテナの起動ログを出力
$ docker-compose logs

#Docker Compose appサービスから新たなコンテナを作成してコマンド実行
#コマンドを実行した回数だけコンテナが増えていく
$ docker-compose run --rm app rails db:create

#Docker Compose 既存のappコンテナを起動してコマンド実行
$ docker-compose exec app bash

#Docker Compose サービス内のコンテナを起動
$ docker-compose start

#Docker Compose サービス内のコンテナを停止
$ docker-compose stop

#Docker Compose サービス内のコンテナを削除
$ docker-compose rm

#Docker Compose appサービスのコンテナのみ削除
$ docker-compose rm app

#Docker Composeサービス内のコンテナを停止し、ネットワークごとコンテナを削除
$ docker-compose down

#Docker Composeサービス内のコンテナを停止し、ネットワークごとコンテナ・イメージを削除
$ docker-compose down --rmi all