여러 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:*