[docker] Docker 작성, net : host에서 컨테이너 실행

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_modev2 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’에 대한 경고 구성 옵션을 삭제하면 작동 할 수 있습니다.


답변