2017-01-20 13 views
0

私は1つのホスト上で複数のドッカー構成を実行しています(さまざまな用途で同じイメージ)。ドッカーが間違ったポートを参照して作成する

私は異なるHTTPS(+ REST)ポートを使用しているため、コンポジションはリモートで利用できます。しかし、ドッカーは他のすべてのコンポジションでも最初のコンポジションのポート範囲を参照しますが、使用しません。私はいかなる否定的な意味合いも見出すことはできませんが、最終的に何らかの含意が生じるかもしれないことを恐れ、それを取り除きたいと思います。

version: '2' 
services: 
    mongo: 
    image: ***** 
    ports: 
     - "27019:27019" 
    tty: true 
    volumes: 
     - /data/mongodb 
     - /data/db 
     - /var/log/mongodb 
    entrypoint: [ "/usr/bin/mongod", "--port", "27019" ] 
    rom: 
    image: ***** 
    links: 
     - mongo 
    ports: 
     - "8643:8643" 
     - "8644:8644" 
    environment: 
     WEB_PORT_SECURE: 8643 
     REST_PORT_SECURE: 8644 
     MONGO_PORT: 27019 
     MONGO_INST: mongod 
    entrypoint: [ "node", "/usr/src/app/app.js" ] 

第ドッカー-COMPOSEファイル(抜粋):

ドッカーPSこの

PORTS  
Second container:           
**8643-8644/tcp**, 0.0.0.0:8743-8744->8743-8744/tcp 
0.0.0.0:27020->27020/tcp       

First container: 
0.0.0.0:**8643-8644->8643-8644**/tcp     
0.0.0.0:27019->27019/tcp 

まずドッカー-COMPOSEファイル(抜粋)を示し

version: '2' 
services: 
    mongo: 
     image: ***** 
     ports: 
      - "27020:27020" 
     tty: true 
     volumes: 
      - /data/mongodb 
      - /data/db 
      - /var/log/mongodb 
     entrypoint: [ "/usr/bin/mongod", "--port", "27020" ] 
     rom: 
     image: ***** 
     links: 
      - mongo 
     ports: 
      - "8743:8743" 
      - "8744:8744" 
     environment: 
      WEB_PORT_SECURE: 8743 
      REST_PORT_SECURE: 8744 
      MONGO_PORT: 27020 
      MONGO_INST: mongod 
     entrypoint: [ "node", "/usr/src/app/app.js" ] 

および最後にドッカー検査

"Config": { 
    "Hostname": *****, 
    "Domainname": "", 
    "User": "", 
    "AttachStdin": false, 
    "AttachStdout": false, 
    "AttachStderr": false, 
    "ExposedPorts": { 
     "8643/tcp": {}, 
     "8644/tcp": {}, 
     "8743/tcp": {}, 
     "8744/tcp": {} 
    }, 
    "Tty": false, 
    "OpenStdin": false, 
    "StdinOnce": false, 
    "Env": [ 
     "MONGO_PORT=27020", 
     "MONGO_INST=mongodb", 
     "WEB_PORT_SECURE=8743", 
     "REST_PORT_SECURE=8744", 
     "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", 
     "NPM_CONFIG_LOGLEVEL=info", 
     "NODE_VERSION=4.7.2", 
     "WORK_DIR=/usr/src/app" 
    ], 

"NetworkSettings": { 
"Ports": { 
    "8643/tcp": null, 
    "8644/tcp": null, 
    "8743/tcp": [ 
     { 
      "HostIp": "0.0.0.0", 
      "HostPort": "8743" 
     } 
    ], 
    "8744/tcp": [ 
     { 
      "HostIp": "0.0.0.0", 
      "HostPort": "8744" 
     } 
    ] 
}, 

第二の容器のためにこれを示した最後のブロックは明らかにドッキングウィンドウは、8643と8644ポートを使って何をやっていないことを示しているが、まだそれを参照しています。

"8643/tcp": null, 
"8644/tcp": null, 

これがどうして起こるのか、それを避ける方法はありますか?

答えて

0

イメージはそれらを公開しています(EXPOSEで構築されています)。

これは問題ではありませんが、これはまったく正常です。外部ホスト上の同じポートを複数回エクスポートしようとしない限り、問題はありません。ここでは、エクスポートされたポートのどれも競合していません。

0.0.0.0:8743-8744->8743-8744/tcp 
0.0.0.0:27020->27020/tcp       
0.0.0.0:8643-8644->8643-8644/tcp     
0.0.0.0:27019->27019/tcp 

8643-8644、8743-8744、27019、27020をエクスポートしています。競合はありません。

コンテナは、必要なポートを公開することができます。公開されているポートが互いに競合していないことが重要です。

+0

これはビルド時に保存されたことに気付きませんでした。それをクリアしていただきありがとうございます! –

関連する問題