2017-09-15 2 views
0

編集:私はこの質問がドッカーに関連していると信じています。 。ドッカーが2つのイーサネットポートを持つホストで特定のネットワークインターフェイス(名前またはIPで)を使用するようにします

2つのイーサネットポートを持つマシンでtraefikを設定しようとしています。

私は外にポート80を露出させたいので、私はコンテナを起動しようとすると、私はエラーを取得:

ERROR: for traefik_traefik_1 Cannot start service traefik: driver failed programming external connectivity on endpoint traefik_traefik_1 (68247b1a5d9c26bfb0a139747f210140c4cf4a34d9125b2cc2fb5d968c85a89b): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use

しかし、80ポートがeth0の(IPでのみ使用されている:192.168。 1.11)インターフェース。

80ポートが使用されていないeth1(ip:192.168.1.12)インターフェイスを使用するにはどうしたらよいですか?

version: "2" 

services: 
    traefik: 
    image: traefik 
    networks: 
     - proxy 
    ports: 
     - 80:80 
     - 443:443 
     - 8888:8888 
    volumes: 
     - /var/run/docker.sock:/var/run/docker.sock 
     - ${SERVER_DIR}/docker/traefik:/etc/traefik/ 
     - ${PWD}/acme.json:/acme.json 
     - ${PWD}/traefik.toml:/traefik.toml 
     - ${PWD}/servers.toml:/servers.toml 
    restart: never 

networks: 
    proxy: 
    external: true 

そして、私のtraefik.toml

logLevel = "ERROR" 
defaultEntryPoints = ["http", "https"] 

[entryPoints] 
    [entryPoints.http] 
     address = "192.168.1.12:80" 
     compress = false 
     [entryPoints.http.redirect] 
      entryPoint = "https" 
    [entryPoints.https] 
     address = "192.168.1.12:443" 
     [entryPoints.https.tls] 

[acme] 
email = "[email protected]" 
storage = "acme.json" 
entryPoint = "https" 
onHostRule = true 
#onDemand = true 
[[acme.domains]] 
    main = "mydomain.net" 

[web] 
address = "192.168.1.12:8888" 

[docker] 
endpoint = "unix:///var/run/docker.sock" 
domain = "mydomain.net" 
watch = true 
exposedbydefault = false 

そして私は単にproxyネットワークインターフェイスを作成しています:特定にごポートバインド

答えて

0

この

は私 docker-compose.ymlですホストIPアドレス。代わりに:

ports: 
    - 80:80 
    - 443:443 
    - 8888:8888 

用途:

ports: 
    - "192.168.1.12:80:80" 
    - "192.168.1.12:443:443" 
    - "192.168.1.12:8888:8888" 

これはdocker-runから-p引数で使用されるのと同じ構文です。詳細は、the documentationを参照してください。

"..."(引用ことに注意してください)この場合には厳密には必要ではないが、私はただ、デフォルトで物事を引用ので、YAMLは時々引用符で囲まれていない番号に予期しない変換を実行します。)

+0

私はそれを試してみましたが、それは今与えますエラー: 'time =" 2017-09-15T14:00:43Z "level =エラーmsg ="サーバーの作成中にエラーが発生しました:listen TCP tcp 192.168.1.12:80:bind:要求されたアドレスを割り当てることができません " – jbssm

+0

アドレス' 192.168.1.12はホストインタフェースに割り当てられていますか? – larsks

+0

はい、そうです。私はMac OS上でこれについての未解決のバグがあることを知りました.Linuxを使用していましたが、私はドッカーバージョン1.11.2を使用することを余儀なくされました。 – jbssm

関連する問題