#概要
この記事はdocker containerの操作にまつわるコマンドの備忘録である。
コマンド
・ dockerHubからdocker imageを持ってくる
$ docker pull <image name>
・ docker imageを一覧表示する
$ docker images
・ docker imageを container として起動する
-d : バックグラウンドで起動し続ける
-p : ポート指定
--restart:docker 再起動時の挙動
$ docker run --name <container name> -d -p <port number> --restart always <image name>
# docker container が自動で再起動しない場合
$ docker update --restart:always <image name>
$ docker inspect -f "{{.Name}} {{.HostConfig.RestartPolicy.Name}}" $(docker ps -aq) | grep always
・ docker imageの削除
$ docker rmi <image name:tag>
・ コードをdocker image化
docker imageを作成する際に、Dockerfileが必須である。
また、pythonベースでのdocker imageを作成する場合は、ソースコードを実行するために必要なパッケージを記載するrequirements.txtを作成しておく必要がある。
Dockerfileの書き方については以下の記事を参照。
https://qiita.com/Fujikawa229/items/21a3310bac3e649b3c61
$ docker build -t <image name> <コマンド実行ディレクトリからDockerfileへの相対パス>
# ビルド時にmountエラーが発生した場合、以下を実行して再トライする
$ export DOCKER_BUILDKIT=1
・ dokcer containerにアクセスして操作する(dokcer containerの中にDockerfileで作成したものが存在するか確認など)
$ docker exec -it <container name> /bin/bash
# コンテナから抜ける時
$ exit
・ container nameの変更
# 一度新しい名前のdocker containerを作成する
$ docker tag $(<old container name>) <new container name>
# 古いdocker containerを削除する
$ docker rm <containerID>
・ docker containerをdocker image化
$ docker commit <container name> <image tag>:<image name>
・ docker imageをファイル出力(tarファイル化)
$ docker save <image name> -o <file name>.tar
$ ls -l
-rw------- 1 user staff 137407488 5 31 11:57 test_image.tar
・ docker imageのload
$ docker load -i <file name>
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dockerp test_image 2ed6419bf47d 5 hours ago 133MB
・ docker imageの削除
$ docker rmi <imageID>
# 同じimageIDが複数ある場合、tagを指定する
$ docker rmi <imageID:tag>