Ejemplos:

Creación de contenedor con debian + apache y volumen de datos alimentado desde Host (Máquina local):

docker run --name debian_9_apache -h debian_9_apache

-v //c/Users/Bowerden/Documents/Eduardo/projekts:/var/www/html/projekts

-d -p 5000:80 debian_9_apache bash -c "apache2ctl -D FOREGROUND"


Ejercicio crear mini entorno Dev...

Preparación aplicación:

Creamos una mini aplicación de pruebas con esta estructura:

  • myweb
    • index.php
    • classes
      • myclasse.php

Esta tiene un index.php con una instancia de _myClass _la cual da la fecha actual, montado en un html.

Creamos una versión de debian 9 con apache, partimos de una base limpia de debian 9...

docker run --name debian -h debian -it debian bash

Actualizamos e instalamos...

apt-get update
... instala ... instala ... done.
apt-get install apache2
... instala ... instala ... done.

Salimos del contenedor (strg + q +p)...

Y creamos (commit) una imagen nueva partiendo del contenedor Debian recién creado la nueva imagen se llamara debian_9_apache ...

docker commit debian debian_9_apache

Lo podemos comprobar con ...

docker images

Detenemos el contendor de debian ...

docker stop debian

Creamos un contenedor con debian 9 y apache levantado ...

docker run --name debian_9_apache -h debian_9_apache -d -p 5000:80 debian_9_apache  bash -c "apache2ctl -D FOREGROUND"

Comprobamos que este funcionando ...

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
57dd7fcbfd4d        debian_9_apache     "bash -c 'apache2c..."   6 seconds ago       Up 3 seconds        0.0.0.0:5000->80/tcp     debian_9_apache

Ahora tengo una imagen con Debain 9 y apache funcionando esta sera la base para el contenedor con el volumen de datos.

Vamos a crear un contenedor con el volumen de datos y una base de apache...

docker run --name s_myweb -h s_web --volumes-from data_myweb -d -p 5000:80 debian_9_apache bash -c "apache2ctl -D FOREGROUND"

Ahora tenemos un container llamado s_myweb con Debian y apache de base. Puedo acceder y trabajar desde mi PC local y ver los resultados en el contenedor, si elimino el volumen o el contendor de volumen los datos residen en mi PC local por lo tanto es una forma de desacoplar los datos de un container de php que luego usaremos. De esta forma podre cambiar de php de forma desacoplada.

Si me voy al navegador podre ver el contenido de mi proyecto desde el container pero no reconoce PHP por lo tanto solo veo html.

Voy a crear un contenedor de PHP para que poder trabajar con php. Este contenedor usara los datos del contenedor de Volumen...

docker run -d -p 80:80 --name apache_php_myweb -h apache_php_myweb  --volumes-from s_myweb -d -p 5050:80 php:7.0-apache

Ahora tengo 2 conenedores uno con el volumen de datos y otro con php ...

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                      NAMES
11a00e534198        php:7.0-apache      "docker-php-entryp..."   14 seconds ago      Up 11 seconds       0.0.0.0:80->80/tcp, 0.0.0.0:5050->80/tcp   apache_php_myweb
18fe365e6760        debian_9_apache     "bash -c 'apache2c..."   5 minutes ago       Up 4 minutes        0.0.0.0:5000->80/tcp                       s_myweb

Si accedo con el navegador podre ver tanto php como html.

Resumen comandos ...

docker run --name debian -h debian -it debian bash
apt-get update
apt-get install apache2
apt-get install vim
docker commit debian debian_9_apache
docker images
docker stop debian
docker run --name debian_9_apache -h debian_9_apache -d -p 5000:80 debian_9_apache  bash -c "apache2ctl -D FOREGROUND"
docker ps
docker run --name s_myweb -h s_web --volumes-from data_myweb -d -p 5000:80 debian_9_apache bash -c "apache2ctl -D FOREGROUND"
docker run -d -p 80:80 --name apache_php_myweb -h apache_php_myweb  --volumes-from s_myweb -d -p 5050:80 php:7.0-apache
docker ps

results matching ""

    No results matching ""