Pseudo Engineer

ソフトウェアの話とか書いてくよ

docker-compose からは run じゃなくて up

docker-compose から run したあと、stopできずに悩んだ。

$ docker-compose run -d mosquitto
$ docker-compose stop mosquitto # ← エラー出さないので受け付けてるようにみえる
$ docker-compose ps
          Name                         Command               State   Ports 
--------------------------------------------------------------------------
mosquitto_mosquitto_run_1   /usr/sbin/mosquitto -c /et ...   Up 
$ # 止まってない。。。

この場合、docker ps -a でコンテナID調べて直接stopさせるしかない?

$ docker ps -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                    NAMES
accb9df6017d        mosquitto_mosquitto   "/usr/sbin/mosquitto "   2 minutes ago       Up 2 minutes                                 mosquitto_mosquitto_run_1
$ docker stop accb9df6017d
accb9df6017d
$ docker ps -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                      PORTS                    NAMES
accb9df6017d        mosquitto_mosquitto   "/usr/sbin/mosquitto "   3 minutes ago       Exited (0) 11 seconds ago                            mosquitto_mosquitto_run_1

docker-compose up で起動するのが正解。

$ docker-compose up -d
Starting mosquitto_mosquitto_1
$ docker-compose ps
        Name                       Command               State           Ports          
---------------------------------------------------------------------------------------
mosquitto_mosquitto_1   /usr/sbin/mosquitto -c /et ...   Up      0.0.0.0:1883->1883/tcp 
$ docker-compose stop
Stopping mosquitto_mosquitto_1 ... done
$ docker-compose ps
        Name                       Command               State    Ports 
-----------------------------------------------------------------------
mosquitto_mosquitto_1   /usr/sbin/mosquitto -c /et ...   Exit 0