서로 다른 호스트 IP를 수신하는 여러 웹 서버 도커 컨테이너

서로 다른 호스트 IP를 수신하는 여러 웹 서버 도커 컨테이너

여러 IP 주소를 가진 서버가 있습니다. 이 호스트에서 두 개의 IP를 수신 :80대기 하는 다른 nginx 컨테이너를 원합니다 .:443

/srv/www1/docker-compose.yml:

nginx:
  image: nginx:mainline-alpine
  container_name: www1
  ports:
    - "69.69.69.1:80:80/tcp"
    - "69.69.69.1:443:443/tcp"

/srv/www2/docker-compose.yml:

nginx:
  image: nginx:mainline-alpine
  container_name: www2
  ports:
    - "69.69.69.2:80:80/tcp"
    - "69.69.69.2:443:443/tcp"

어느 하나www2컨테이너는 문제 없이 먼저 시작할 수 있지만 첫 번째 컨테이너가 이미 실행 중인 동안 두 번째 컨테이너(예:)를 시작하려고 하면 첫 번째 컨테이너가 중지되고 다음 오류가 발생합니다.

WARNING: Found orphan containers (www1) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.

아니요, 동일한 컨테이너가 아닙니다. docker-compose.yml파일이 동일한 디렉터리에 있지도 않습니다. docker가 image:ports:필드를 사용하여식별하다컨테이너이지만 IP 주소는 무시합니다.

이것은 버그인가요? 어떻게 작동하게 할 수 있나요?

답변1

단일 docker-compose 파일에서 컨테이너를 실행하는 것이 작동합니다.

/srv/www/docker-compose.yml:

version: '3'
services:

    nginx1:
      image: nginx:mainline-alpine
      container_name: www1
      ports:
        - "69.69.69.1:80:80/tcp"
        - "69.69.69.1:443:443/tcp"
    
    nginx2:
      image: nginx:mainline-alpine
      container_name: www2
      ports:
        - "69.69.69.2:80:80/tcp"
        - "69.69.69.2:443:443/tcp"

다음을 통해 확인하세요 ss.

# ss -tln | grep ':80 \|:443 '
LISTEN 0      4096           69.69.69.1:443        0.0.0.0:*          
LISTEN 0      4096           69.69.69.2:443        0.0.0.0:*          
LISTEN 0      4096           69.69.69.1:80         0.0.0.0:*          
LISTEN 0      4096           69.69.69.2:80         0.0.0.0:*

관련 정보