====== よく使うコマンド ======
#イメージの取得
$ docker pull nginx:latest
#イメージの確認
$ docker images
#イメージの削除
$ docker rmi [IMAGE ID] [IMAGE ID]
#コンテナの作成と実行
$ docker run --name my-nginx -d -p 8080:80 nginx:latest
#コンテナの状態確認
$ docker ps
#コンテナの状態確認(終了したコンテナも)
$ docker ps -a
#コンテナの起動
#-d:コンテナをバックグラウンド実行
#-name:コンテナ名の指定
#-p:ポートフォワード設定 ホスト側のポート>:<コンテナ側のポート>
#-v:ディレクトリ共有 <ホスト側ディレクトリ>:<コンテナ側ディレクトリ>
#-i (--interactive) オプションは、コンテナプロセスの標準入力を開いたままにします。
#-t (--tty) オプションは、コンテナプロセスに擬似TTYを割り当てます。
#コンテナプロセスが /bin/bash の様な標準入出力を対象とするプロセスの場合は -it オプションをつけ、httpd の様なソケット等を対象とするプロセスの場合は -it オプションをつけないのが一般的です。
$ docker run --name {コンテナ名} -it {image名} /bin/bash
$ docker run -d --name nginx-container -p 8181:80 nginx
$ docker run -it -d -p 18082:8080 -v /root/tomcat-container/logs2:/share/logs --name tomcat2 tomcat-image
$ docker run -it centos:latest bash
#wordpress
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7
$ docker run --name some-wordpress -e WORDPRESS_DB_PASSWORD=my-secret-pw --link some-mysql:mysql -d -p 8080:80 wordpress
#コンテナの起動、停止、再移動
#コンテナはrunで実行すると停止しても残っている。startするか、docker rmでコンテナを削除してから再度runする。
$ docker container ls -a # コンテナ一覧
$ docker ps -a #コンテナ一覧
$ docker start コンテナ名
$ docker stop コンテナ名
$ docker restart コンテナ名
#コンテナへのログイン
$ docker exec -it <コンテナ名> bash
#ファイルコピー
#(ホスト→コンテナ内)
$ docker cp <ホスト側のファイル> <コンテナ名>:<コンテナ内のコピー先ディレクトリ>
#(コンテナ内→ホスト)
$ docker cp <コンテナ名>:<コンテナ内のコピー元ファイル> <ホスト側のコピー先ディレクトリ>
#コンテナの削除
$ docker rm -f [CONTAINER ID]
#コンテナをアプリ名で一括削除
$ docker ps -a -f name=[コンテナ名]| xargs docker rm
#コンテナにログインする
docker exec -it [コンテナ名] /bin/bash
#コンテナからDockerイメージ作成
$ docker commit <コンテナ名> <作成するDockerイメージ名>
#コンテナ起動、停止
$ docker start <コンテナ名>
$ docker stop <コンテナ名>
#コンテナからイメージ作成
# docker commit <コンテナ名> <作成するDockerイメージ名>
#Dockerfileを使用して、Dockerイメージを作成
#docker build -t
$ cd
$ docker build -t tomcat:1 .
DockerfileのCMDで実行したコンソールログが確認。
# docker logs -f [Dokcerイメージ]
#docker volumeの一覧を表示する
# docker volume ls
DRIVER VOLUME NAME
local 2cab073ffcf3a...
local 5e083ab7d8757...
local 7d31c8ba1b049...
#docer volume の削除
# docker volume rm fastapi_mysql_data
fastapi_mysql_data
# 起動オプションの確認
$docker inspect [コンテナ名]
# マッピングの確認
$ docker port my-apache-app
80/tcp -> 0.0.0.0:8080
# exitedのタイミングでコンテナを削除する --rm
$ docker run -dit --rm --name centos centos:6 /bin/bash
#コンテナのIPを調べる
$ docker exec -it [コンテナ名] bash
$ hostname -i
172.17.0.3
# 停止しているコンテナをまとめて削除する
$ docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
# どのコンテナもつかっていないイメージの削除
$ docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
# Dockerfileのビルド
$ docker build -t [イメージ名] .
[[https://qiita.com/nakat-t/items/271071eeb0c0c9143396|Docker Windows (WSL2) で centos:6 等の古いコンテナが Exited (139) で起動しない問題の対処法]]
# コンテナでvimをインストールする viはできなかった。
$ apt update
$ apt install vim