Docker 初心者が Docker でよく使ったコマンド集

色んな記事でみんな長いコマンドを叩いてよくわからなかった。
自分は 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