no en un contenedor acoplable, pero sí en n contenedores acoplables.
Si bien, en teoría, podría ensamblar todo su entorno de desarrollo dentro de un solo contenedor, Docker no estaba destinado a hacer esto.
En su lugar, debe implementar cada servicio en contenedores separados, utilizando Docker Composose , administrando toda su infraestructura en un solo archivo, donde cada servicio tendrá su propio archivo de registro, espacio de usuario, redes, etc.
Déjame darte un ejemplo, este es un borrador de mi docker-compose.yml
version: '2'
services:
myproxy:
build: myproxy
container_name: ppproxy
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
networks:
default:
aliases:
- www.domain1.it
- www.domain2.it
- www.domain4.it
mydb1:
build: mydb
environment:
DB_USER: sdffdssdf
DB_PASSWORD: fdsfsdsdf
DB_NAME: dbanme1
DB_ENCODING: UTF-8
VIRTUAL_HOST: myhost1.net.lan
VIRTUAL_PORT: 5432
mydb2:
build: mydb
environment:
DB_USER: ssdfsdfs
DB_PASSWORD: sffdssd
DB_NAME: dbanme2
DB_ENCODING: UTF-8
VIRTUAL_HOST: myhost2.net.lan
VIRTUAL_PORT: 5432
www:
image: myimages/oldservice:v1.1
container_name: www
command: /bin/bash /root/launch
environment:
VIRTUAL_HOST: www.domain1.it
VIRTUAL_PORT: 80
ports:
- 80
depends_on:
- mydb1
- mydb1
- myws
myws:
build: myjettycontainer
environment:
HTTPS_METHOD: noredirect
VIRTUAL_HOST: www.domain2.it
VIRTUAL_PORT: 8080
ports:
- 8080
depends_on:
- mydb1
- mydb2
- myproxy
- mypostfix
mypostfix:
image: catatnight/postfix
container_name: mailer
environment:
maildomain: domain1.it
smtp_user: mymail:sfsfdfds
ports:
- 25
Hay un proxy nginx (myproxy), dos bases de datos postgres similares (mydb1 y 2), un antiguo servidor de aplicaciones web java (www), un contenedor java jetty que proporciona un servicio web de descanso y finalmente un contenedor de postfix SMTP muy simple.
Todo comienza, generalmente :), con docker-compose up
mi máquina de desarrollo o en producción; los archivos de registro se agregan en un archivo fácil de leer y es posible replicar localmente casi todas las funciones con la garantía de que, si funciona en mi computadora portátil, funcionará.