국지적 인 다음의 예 "링크"은 구식이며 커플 용기, 당신은 더 나은 (고정 표시기-작성이 그것을하지 실제로) 대신 다리 네트워크를 정의하는 것 :
version: '2' services: web: build: ./web ports: - 3000:3000 container_name: web api: build: ./api container_name: api db: image: postgres container_name: db
conatiner_name
: 웹 컨테이너이 .like 호스트 이름 API를에 의해 API에 액세스 할 수 있습니다 network.For 다리의 호스트 이름입니다
BTW, 당신은 더 나은 컨테이너 dB ~에 볼륨을 마운트 것
당신에게 예를 들어 내 프로젝트 중 하나를 보내기
// 고정 표시기 - compsoe.yml version: "2" services: web: build: context: ./web dockerfile: Dockerfile container_name: api-web working_dir: /etc/nginx/ tty: true stdin_open: true ports: - 2017:2017 depends_on: - server server: build: context: ./server dockerfile: Dockerfile container_name: api-server working_dir: /app tty: true stdin_open: true ports: - 2018:2018 depends_on: - db db: image: mongo:3 container_name: api-db tty: true stdin_open: true volumes: - ./data:/data ports: - 27001:27017
// nginx.conf는 컨테이너 api-web에서 컨테이너 api-server에 연결합니다.
gzip on;
gzip_min_length 1k;
gzip_buffers 16 64k;
gzip_http_version 1.1;
gzip_comp_level 9;
gzip_types application/javascript text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
server {
listen 2017;
root /usr/share/nginx/html;
index index.html;
location /api {
proxy_pass http://api-server:2018;
}
location/{
try_files $uri $uri/ /index.html;
}
Docker를 사용한 이후로 꽤 오래되었습니다. 작성하고 싶지만 이미 원하는대로해야하는 것처럼 보입니다. 웹 컨테이너의 관점에서, 호스트 이름'api'는 사설 네트워크의'api' 컨테이너의 IP 주소로 해석되어야합니다. –
도커 네트워크가 동적 포트를 할당합니까? – dopatraman
포트를 할당 할 필요가 없습니다. 만약 당신이'api' 컨테이너 안에 포트 n을 듣고 있다면,'web' 컨테이너는'api : n'을 통해 그 컨테이너에 연결할 수 있습니다. –