La idea detrás de Docker es crear contenedores ligeros y portables para las aplicaciones software que puedan ejecutarse en cualquier máquina con Docker instalado, independientemente del sistema operativo que la máquina tenga por debajo, facilitando así también los despliegues.
Un contenedor no es lo mismo que una máquina virtual. Un contenedor es más ligero, es simplemente un proceso que corre en la maquina host. Mientras que a una máquina virtual necesitas instalar un sistema operativo para funcionar, un contenedor de Docker funciona utilizando el sistema operativo que tiene la máquina en la que se ejecuta el contenedor. El concepto de portabilidad de un contenedor de Docker es algo similar a la máquina virtual de Java.
https://github.com/dcm4che/dcm4chee-arc-light/wiki/Running-on-Docker
Como visa implemento Docker en su infra-estructura facilitando todo el ciclo de desarrollo https://www.youtube.com/watch?v=Wt9TnN3ua_Y
Docker corre sobre el kernel de linux, por lo que su instalacion en linux y windows 10 es facil y rapida teniendo en consideracion que Windows 10 tiene incluido el kernel de linux en su infraestructura
Con windows 10 debes bajar docker desde aqui
Con windows 7 debes bajar docker desde aqui
Debido a que windows 7 no tiene el kernel de linux. Docker toolbox viene preconfigurado con virtualbox para realizar la emulacion. Dentro de docker toolbox viene todo configurado. No es necesario realizar pasos adicionales
Hay que realizar una serie de configuraciones adicionales debido al firewall corporativo. Para mayor informacion leer la wiki de docker de problemas comunes
$ set http_proxy=http://user:[email protected]:8080
$ set https_proxy=https://user:[email protected]:8080
$ docker-machine create -d virtualbox --engine-env HTTP_PROXY=http://user:[email protected]:8080 --engine-env HTTPS_PROXY=https://user:[email protected]:8080 default
Para realizar pruebas por comando se ejecuta el Docker QuickStart Terminal, o Kitematic el cual contiene la interfaz grafica.
Se realizaron pruebas con docker compose y la siguiente guia
- Se configuro el
docker-compose.yml
- Se configuraron las variables de entorno en
docker-compose.env
- Se ejecuto el container con el siguiente comando
docker-compose -p dcm4chee up -d
Se tienen 3 contenedores configurados a traves de docker-compose. Docker compose permite ejecutar varios contenedores simultaneamente.
- slapd-dcm4chee:2.4.44-11.0 Contiene la configuracion de ldap para dcm4chee. Expone el puerto 389
- dcm4che/postgres-dcm4chee:10.0-11 Contiene la configuracion de la base de datos para dcm4chee. Expone el puerto 5432
- dcm4che/dcm4chee-arc-psql:5.11.0 Contiene la configuracion de WildFly (anteriormente JBoss) para dcm4chee. Expone el puerto 8080
version: "3"
services: ### declaracion del contenedor
ldap: ### nombre del contenedor
image: dcm4che/slapd-dcm4chee:2.4.44-11.0 ### repositorio y proyecto del contenedor, :x.x-y indica la version del proyecto
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "389:389" ### indica el puerto en cual se exponera el puerto donde aplica el siguiente orden HOST:CONTAINER
env_file: docker-compose.env
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/local/dcm4chee-arc/ldap:/var/lib/ldap
- /var/local/dcm4chee-arc/slapd.d:/etc/ldap/slapd.d
db:
image: dcm4che/postgres-dcm4chee:10.0-11
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "7432:5432"
env_file: docker-compose.env
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/local/dcm4chee-arc/db:/var/lib/postgresql/data
arc:
image: dcm4che/dcm4chee-arc-psql:5.11.0
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "8080:8080"
- "8443:8443"
- "9990:9990"
- "11112:11112"
- "2575:2575"
env_file: docker-compose.env
environment:
WILDFLY_CHOWN: /opt/wildfly/standalone /storage
WILDFLY_WAIT_FOR: ldap:389 db:5432
depends_on:
- ldap
- db
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone
- /var/local/dcm4chee-arc/storage:/storage