色んな記事でみんな長いコマンドを叩いてよくわからなかった。
自分は docker-compose.yaml に色々と記述しているので、
単純なコマンドしか叩いていない。
コンテナの起動
- Dockerfile や docker-compose.yaml があるところで叩く
- イメージと Dockerfile, docker-compose.yaml などに記述した内容に沿ってコンテナを作成して起動する。
コンテナがなければ作成して起動する
$ cd /path/to/your/project
$ docker-compose up
コンテナが作成されていても作り直して起動する
$ cd /path/to/your/project
$ docker-compose up --build
稼働しているコンテナにログインする
- 稼働中のコンテナにログインできる。
# 稼働しているコンテナの一覧を表示
$ docker ps
# 全てのコンテナを表示
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ae883db57be2 docker_sample "/docker-entrypoint.…" 20 hours ago Up 10 seconds 0.0.0.0:8080->80/tcp docker_sample_app_1
# ログインする
# docker exec -it [NAMES] [choose command language]
$ docker exec -it docker_sample_app_1 /bin/bash
# ログアウト
$ exit
コンテナの削除
コンテナを指定して削除する
# docker rm [NAMES or CONTAINER ID]
$ docker rm docker_sample_app_1
or
$ docker rm ae883db57be2
全てのコンテナを削除する
$ docker rm $(docker ps -a -q)
イメージ
# 一覧表示
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker_sample latest 8f81c1e617ed About a minute ago 133MB
nginx 1 f6d0b4767a6c 9 days ago 133MB
# 強制的に削除する
# docker rmi [REPOSITORY or IMAGE ID] -f
$ docker rmi docker_sample -f
or
$ docker rmi 8f81c1e617ed -f
# <none> イメージを全て削除する
$ docker rmi $(docker images --filter "dangling=true" -q) -f
ネットワーク
# 一覧表示
$ docker network ls
NETWORK ID NAME DRIVER SCOPE
33da857e13cc bridge bridge local
ff4eb0b291fb docker_sample_network bridge local
2009c1425362 host host local
5eec69202c29 none null local
# 削除する
# docker network rm [NETWORK ID or NAME]
$ docker network rm docker_sample_network
or
$ docker network rm ff4eb0b291fb