Eu tenho um servidor com vários endereços IP. Quero que diferentes contêineres nginx escutem :80
dois :443
IPs neste 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"
QualquerO contêiner pode iniciar primeiro sem problemas, mas se eu tentar iniciar o segundo contêiner ( www2
por exemplo), enquanto o primeiro já estiver em execução, o primeiro contêiner será interrompido e este erro será gerado:
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.
Não, eles não são o mesmo contêiner - os docker-compose.yml
arquivos nem estão no mesmo diretório. Parece que o docker usa os campos image:
e ports:
paraidentificarcontêineres, mas ignora os endereços IP.
Isso é um inseto? Como posso fazer isso funcionar?
Responder1
A execução dos contêineres a partir de um único arquivo docker-compose está funcionando.
/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"
Verifique com 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:*