Volumenes
Docker recomienda mantener los datos fuera del contenedor. El objetivo es tener el contenedor con un función especifica y concreta. Por ejemplo si tenemos un Ubuntu instalad en un contenedor este debe cumplir esta función, para la base de datos crearemos un container diferente y los relacionaremos entre ellos mediante links en el alinea de comandos en la configuración del archivo docker-compose.
Podemos montar un directorio de nuestra máquina host en el contendor como un volumen.
docker run -it --name miweb -v /home/edu/codigo:/var/www/html debian bash
-v : Es la opción de creación de volumen luego se especifica el Path origen : Path destino
Crearía un volumen en var/www/html del contenedor y podríamos de forma local estar modificando el código de forma local.
Se pueden pasar parámetros de por ejemplo solo lectura y diferentes permisos.
El objetivo es crear contenedores para virtualízar las zonas de trabajo, sin tener que instalar nuevas versiones de entornos de trabajo en nuestra máquina. Por ejemplo podemos estar trabajando en dos proyectos emulando para uno php5 y para otro php7.
Podemos configurar un contenedor nuevo con los parámetros de volúmenes de otro ya creado.
Por ejemplo:
docker run -it --name nueva_web --volumes-from miweb -y debian bash
--volumes-form miweb: Le dice que queremos los mismos volúmenes montados ene le anterior container, llamado miweb.
Mediante --volumes-from xxx
podemos compartir volúmenes de datos. Una estrategia es crear un contenedor con el volumen de datos y luego que los contenedores por ejemplo del servidor comparta el volumen de datos de esta forma podemos mantener aislados el contenedor de datos.
Crear rutas en windows
Para crear un volumen en un local windows ...
docker create -it --name data_vol -h data_vol -v //c/Users/Bowerden/Documents/Eduardo/projekts:/home/projekts debian bash