docker-compose를 사용하여 “호스트”네트워크에 3 개의 서비스를 생성하고 싶습니다. 다음은 내 docker-compose.yml 파일입니다.
version: '2'
services:
mysql:
image: mysql
net: "host"
nginx:
image: nginx
net: "host"
app:
image: tomcat
net: "host"
다음과 같은 오류가 발생했습니다.
$ docker-compose up
[31mERROR[0m: Validation failed in file '.\docker-compose.yml', reason(s):
Unsupported config option for services.app: 'net'
Unsupported config option for services.mysql: 'net'
Unsupported config option for services.nginx: 'net'
Windows에서 boot2docker를 사용하고 있습니다.
Docker 및 Docker 작성 버전 :
$ docker -v
Docker version 1.10.2, build c3959b1
$ docker-compose -version
docker-compose version 1.6.0, build cdb920a
모든 서비스를 사용하여 모든 서비스를 수동으로 실행하면 docker run --net = "host"
정상적으로 작동합니다.
설명서에서 net 명령이 docker-compose에서 지원 된다는 것을 읽었습니다 .
그물
네트워킹 모드. docker client –net 매개 변수와 동일한 값을 사용하십시오.
net : “브리지”
net : “없음”
net : “컨테이너 : [이름 또는 ID]”
net : “호스트”
https://docs.docker.com/v1.6/compose/yml/#net
내가 뭘 잘못하고 있죠?
답변
해당 문서는 오래되었습니다. URL의 1.6은 Compose 1.6이 아닌 Docker 1.6 용이라고 생각합니다. https://docs.docker.com/compose/compose-file/#network_mode 에서 올바른 구문을 확인 하십시오 . network_mode
v2 YAML 형식 을 사용할 때 찾고 있습니다.
답변
그냥 인쇄
network_mode: "host"
답변
그냥 추가해 볼 수 있습니다
network_mode: "host"
예 :
version: '2'
services:
feedx:
build: web
ports:
- "127.0.0.1:8000:8000"
network_mode: "host"
사용 가능한 목록 옵션
network_mode: "bridge"
network_mode: "host"
network_mode: "none"
network_mode: "service:[service name]"
network_mode: "container:[container name/id]"
https://docs.docker.com/compose/compose-file/#network_mode
답변
아마 아주 늦게 대답하고있을 것입니다. 그러나 Docker compose에서 호스트 네트워크를 구성하는 데 문제가 있습니다. 그런 다음 설명서를 철저히 읽고 변경하여 작동했습니다. 이 구성은 docker-compose 버전 “3.7”용입니다. 여기 einwohner_net 및 elk_net_net은 내 애플리케이션에 필요한 사용자 정의 네트워크입니다. 일부 시스템 메트릭을 얻기 위해 host net을 사용하고 있습니다.
문서 링크 https://docs.docker.com/compose/compose-file/#host-or-none
version: '3.7'
services:
app:
image: ramansharma/einwohnertomcat:v0.0.1
deploy:
replicas: 1
ports:
- '8080:8080'
volumes:
- type: bind
source: /proc
target: /hostfs/proc
read_only: true
- type: bind
source: /sys/fs/cgroup
target: /hostfs/sys/fs/cgroup
read_only: true
- type: bind
source: /
target: /hostfs
read_only: true
networks:
hostnet: {}
networks:
- einwohner_net
- elk_elk_net
networks:
einwohner_net:
elk_elk_net:
external: true
hostnet:
external: true
name: host
답변
services.app : ‘net’에 대한 경고 구성 옵션을 삭제하면 작동 할 수 있습니다.