EDIT :이 질문은 docker에만 관련이 있다고 생각합니다. 앞으로 누군가에게 도움이 될 수 있도록 traefik 세부 정보를 제공합니다. .두 개의 이더넷 포트가있는 호스트에서 docker가 특정 네트워크 인터페이스 (이름 또는 IP 기준)를 사용하도록 설정
두 개의 이더넷 포트가있는 시스템에서 traefik을 구성하려고합니다.
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 내가 외부에 포트 80을 노출 할 때문에 나는 용기를 시작할 때
, 나는 오류가 발생합니다. 1.11) 인터페이스.
80 포트가 사용되지 않는 eth1 (ip : 192.168.1.12) 인터페이스를 사용하여 도커 (및 traefik)를 어떻게 만들 수 있습니까?
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
네트워크 인터페이스를 만드는거야 : 특정에 포트 바인딩 docker create network proxy
을 나는 그것을 시도했지만 지금을 제공합니다 error :'time = "2017-09-15T14 : 00 : 43Z"level = 오류 msg = "서버 생성 중 오류 : 수신 TCP 192.168.1.12:80 : bind : 요청 된 주소를 할당 할 수 없음" – jbssm
주소' 192.168.1.12'가 호스트 인터페이스에 할당 되었습니까? – larsks
예. Mac OS에서이 문제에 관해서는 아직까지 눈에 띄지 않은 버그가있는 것을 보았습니다. Linux를 사용하기는했지만 docker 1.11.2 버전을 사용해야하므로 문제가 될 수 있습니다. – jbssm