Dockerコマンド
-i:コンテナの標準入出力を取得し、双方向に接続できるようにする
-t:新しいコンテナ内に疑似ターミナル (pseudo-tty) を割り当てる
code:shell
$ docker login
# イメージのリストを表示
$ docker images
$ docker pull <image>
# コンテナ起動(imageが手元にない場合はpullする)
$ docker run <image>
# コンテナ起動と同時にbashを起動(デフォルトコマンドをbashに上書き)
$ docker run -it <image> bash
# コンテナ名を指定して起動
$ docker run --name <name> <image>
# コンテナを起動し、Exit後に削除する
$ docker run --rm <image>
# ホストのファイルシステムをコンテナにマウント(rootユーザー)
$ docker run -it -v <Hostのファイルパス>:<コンテナ側のディレクトリ名>
# 指定したディレクトリがコンテナ側にない場合は自動で作られる
# ホストのファイルシステムをコンテナにマウント(ユーザー指定)
$ docker run -u $(id -u):$(id -g) -v <Hostのファイルパス>:<コンテナ側のディレクトリ名>
# ホストのポートをコンテナのポートに接続(publish)
$ docker run -p <host_port>:<container_host> <image>
# コンテナのCPU・メモリ上限を設定
$ docker run --cpus 4 --memory 2g <image>
# コンテナ上でbashを起動
$ docker exec -it <container> bash
# コンテナ再起動
$ docker restart <container>
# imageに名前・タグをつける
$ docker tag <repogitoty:tag> <新しい名前>
# DockerHubにプッシュ
$ docker push masuyama13/my-repogitory:tagname
# コンテナの詳細情報表示
$ docker inspect <container>
# 実行中のコンテナを表示
$ docker ps
# 全てのコンテナを表示
$ docker ps -a
# コンテナ停止(複数可能)
$ docker stop <container>
# 全コンテナ停止
$ docker stop $(docker ps -q)
# 停止中のコンテナ全削除
$ docker system prune
# コンテナ一括削除
$ docker rm $(docker ps -q -a)
# volume一括削除
$ docker volume rm $(docker volume ls -qf dangling=true)
$ docker runは、 $ docer create(コンテナ作成) + $ docker start(デフォルトコマンド実行)
デフォルトコマンドは、$ docker ps -a の COMMAND
コンテナからのデタッチ
Ctrl + P , Ctrl + Q