Dockerのrestartの挙動を確認してみる(補足)

Dockerのrestartの挙動を確認してみる https://yk5656.hatenablog.com/entry/20201122/1605970800

の補足

すぐ終了するコマンドをrestartオプションを付けずに実行すると、

$ docker run --name hoge1 ubuntu echo hogehoge

すぐ終了するが、

$ docker ps -a
CONTAINER ID   IMAGE     COMMAND           CREATED         STATUS                     PORTS     NAMES
56a08699b69d   ubuntu    "echo hogehoge"   6 seconds ago   Exited (0) 5 seconds ago             hoge1

$ docker logs hoge1
hogehoge

restartオプションを付けて実行すると、

$ docker run --name hoge2 --restart=unless-stopped ubuntu echo hogehoge

Restartingし続ける。

$ docker ps -a
CONTAINER ID   IMAGE     COMMAND           CREATED          STATUS                                  PORTS     NAMES
d0bd94317fc0   ubuntu    "echo hogehoge"   5 seconds ago    Restarting (0) Less than a second ago             hoge2
・・・

$ docker logs hoge2
hogehoge
hogehoge
hogehoge
hogehoge
hogehoge
hogehoge
hogehoge

ちなみに、runのrmオプションとrestartオプションは同時には指定できないみたい。

$ docker run --name hoge3 --rm --restart=unless-stopped ubuntu echo hogehoge
docker: Conflicting options: --restart and --rm.
See 'docker run --help'.

また、docker-composeのrunで実行した場合は、

$ vi docker-compose.yml
version: '3'
services:
  hoge-srv:
    image: ubuntu
    restart: always
$ docker-compose run --name hoge4 hoge-srv echo hogehoge

すぐに終了し、restartしない。
(この辺の仕様はまだよく分かっていない)

$ docker ps -a
CONTAINER ID   IMAGE     COMMAND           CREATED          STATUS                         PORTS     NAMES
8d2767575d0a   ubuntu    "echo hogehoge"   4 seconds ago    Exited (0) 3 seconds ago                 hoge4
・・・