Docker como servicio
Poner a correr una imagen docker cuyo proceso es un servicio supone dejar corriendo algo en forma permanente para utilizar el servicio.
Al poner algo a correr en forma permanente debemos, además de saber cómo ejecutarlo, saber si está funcionando, utilizar el servicio y cómo apagarlo, así que este paso involucra algunos conceptos más del uso de docker.
Ejecución
Entonces, ejecutando:
$ docker run -d -p 8082:8082 andygrunwald/simple-webserver
donde:
-d
pondrá a correr el docker en //background//-p 8082:8082
abrirá el puerto 8082 en el equipo local conectará con el puerto 8082 del contenedor.
y descargará la imagen y nos devolverá el prompt, pero ha dejado corriendo el docker.
Saber si está funcionando
Podemos interrogar con docker si el contenedor está corriendo:
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8d5297a02f2c andygrunwald/simple-webserver "app" About a minute ago Up About a minute 0.0.0.0:8082->8082/tcp stupefied_bohr
Utilizar el servicio
El servicio es un servidor web simple que lo podemos ver con el navegador conectando al puerto local, que configuramos con -p
, mediante el comando curl:
$ curl http://localhost:8082/version
simple webserver v1.0.0
Apagar el contenedor
Como al contenedor lo creamos sin nombre, nos referimos a él por el Container ID y lo apagamos con:
$ docker container stop 01a420094251
$ docker container ls
CONTAINER ID IMAGE COMMAND
$
Encender el contenedor
$ docker container start 01a420094251
Acceder a un contenedor en ejecución
Es posible acceder a un contenedor, para modificar contenido, revisar logs, verificar distintas configuraciones, obteniendo shell:
docker container exec -it eager_hopper sh
donde:
-i
entrará en modo interactivo-t
asignara una consolatty
al proceso ejecutado (sh)
Ejercicios
1.
Borrar todos los container apagados utilizando los comandos:
docker container ps -a
docker container rm <CONTAINER-ID>
2.
Volver a ejecutar el container (Ejecución)como se muestra a principio esta sección verificando que esté activo y tratar de borrarlo con los comandos, verificando las diferencias entre ellos:
docker container rm <CONTAINER-ID>
docker container rm -f <CONTAINER-ID>
3.
Volver a ejecutar el container (Ejecución) pero esta vez sin el parámetro -d
dejando el servicio en primer plano.
Desde otra consola hacer conexiones con curl http://localhost:8082
Salir con Ctrl-C
y verificar qué sucede con el contenedor utilizando el comando docker container ls