Tengo un servidor con varias direcciones IP. Quiero que diferentes contenedores nginx escuchen una :80
y :443
otra vez dos IP en este host.
/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"
CualquieraEl contenedor puede iniciarse primero sin problemas, pero si intento iniciar el segundo contenedor ( www2
por ejemplo), mientras el primero ya se está ejecutando, el primer contenedor se detiene y se genera este error:
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.
No, no son el mismo contenedor; los docker-compose.yml
archivos ni siquiera están en el mismo directorio. Parece que Docker usa los campos image:
y ports:
paraidentificarcontenedores, pero ignora las direcciones IP.
¿Es esto un error? ¿Cómo puedo hacerlo funcionar?
Respuesta1
Está funcionando ejecutar los contenedores desde un único archivo 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"
Compruébalo con 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:*