docker-compose でportsが反映されない問題…

docker-composeでportsの設定が反映されない問題がでて、悩んでたのですが、実はコマンド間違えだということがわかりました。
しかし、絶対また同じことをする自信があるので、備忘録

こんなdocker-compose.yamlがあります。

version: "3"
services: 
  # activemq
  activemq:
    build: .
    image: activemq:5.5.2
    container_name: activemq
    ports:
      - "1883:1883"
      - "5672:5672"
      - "8161:8161"
      - "61613:61613"
      - "61614:61614"
      - "61616:61616"

ports設定を6つしたいのです。これを間違ったコマンドで起動します

$ docker-compose run -d activemq 
$ docker ps 
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS              PORTS                                                                    NAMES
88f158290f09        activemq:5.5.2            "/bin/sh -c './bin..."   3 seconds ago       Up 1 second         1883/tcp, 5672/tcp, 8161/tcp, 61613-61614/tcp, 61616/tcp    

このように・・・ポートがコンテナ側しかあかないのです。これでなんでかなー?ってなってました。
docker-composeの場合は、runは使わずにupを使いましょう

下記、正しいコマンド

$ docker-compose up -d 
$ docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                         NAMES
d58e6db65202        activemq:5.5.2      "/bin/sh -c './bin..."   5 seconds ago       Up 3 seconds        0.0.0.0:1883->1883/tcp, 0.0.0.0:5672->5672/tcp, 0.0.0.0:8161->8161/tcp, 0.0.0.0:61613-61614->61613-61614/tcp,0.0.0.0:61616->61616/tcp   activemq

これで、ホスト側とコンテナ側でのポートフォワーディングができています。

このエントリーをはてなブックマークに追加

Leave a Reply

Your email address will not be published. Required fields are marked *