Jugando con #Docker, mi libreta

Esta publicación es mi cuaderno sobre estibador después de que tuvimos una muy buena introducción sobre Docker por François Moreews (INRIA/IRISA, Rennes). Utilicé docker hoy por primera vez, mi objetivo era solo crear un imagen que contiene https://github.com/lindenb/verticalizeuna pequeña herramienta que escribí para verticalizar archivos de texto.

Instalar ventana acoplable

odiar ejecutando este tipo de líneas de comando, ¿no?

$ wget -qO- https://get.docker.com/ | sh
sudo password for tatayoyo:
apparmor is enabled in the kernel and apparmor utils were already installed
/sbin/apparmor_parser
+ [ https://get.docker.com/ = https://get.docker.com/ ]
+ sudo -E sh -c apt-key adv --keyserver
(...)

agregar mi cuenta de linux al grupo “docker”

sudo usermod -aG docker tatayoyo

cerrar sesión y volver a iniciar sesión…

Estoy trabajando detrás de un proxy [email protected]!#: edite /etc/default/docker para configurar las cosas del proxy

$ cat /etc/default/docker
(...)
# If you need Docker to use an HTTP proxy, it can also be specified
here.
export http_proxy="http://(proxy-port):(proxy-host)/"
export https_proxy="http://(proxy-port):(proxy-host)/"
export ftp_proxy="http://(proxy-port):(proxy-host)/"
export HTTP_PROXY="http://(proxy-port):(proxy-host)/"
export FTP_PROXY="http://(proxy-port):(proxy-host)/"
export HTTPS_PROXY="http://(proxy-port):(proxy-host)/"
(...)

iniciar el servicio de ventana acoplable

$ sudo start docker
[sudo] password for tatayoyo:
docker start/running, process 5023

crear el Dockerfile

Crea un nuevo directorio, en este directorio creamos un archivo llamado “Archivo acoplable”. Contiene

  • el nombre de la imagen base que estamos usando (aquí el último ubuntu)
  • la configuración del proxy [email protected]!# (otra vez ???!!!!)
  • algunas llamadas a `apt` para descargar git, gcc, make…
  • algunas declaraciones para clonar https://github.com/lindenb/verticalizecompile e instale mi herramienta en /usr/local/bin
FROM ubuntu:latest
ENV http_proxy "http://(proxy-port):(proxy-host)/"
ENV https_proxy "http://(proxy-port):(proxy-host)/"
ENV ftp_proxy "http://(proxy-port):(proxy-host)/"
ENV HTTP_PROXY "http://(proxy-port):(proxy-host)/"
ENV HTTPS_PROXY "http://(proxy-port):(proxy-host)/"
ENV FTP_PROXY "http://(proxy-port):(proxy-host)/"
RUN apt-get update
RUN apt-get install -y wget gcc make git
RUN git clone "https://github.com/lindenb/verticalize.git" /tmp/verticalize && make -C /tmp/verticalize && cp /tmp/verticalize/verticalize /usr/local/bin && rm -rf /tmp/verticalize

crear la imagen ‘verticalizar’ a partir de la Dockerfile

sudo docker build -t verticalize .
(...)

Enumere las imágenes

$ docker images
REPOSITORY  TAG                 IMAGE ID         CREATED        VIRTUAL SIZE
verticalize latest              5f7159b4921a     12 seconds ago 317 MB
(...)

Etiquete la imagen ‘verticalizar’ como alojada en mi repositorio dockerhub https://registry.hub.docker.com/u/lindenb

$ docker tag 5f7159b4921a lindenb/verticalize:latest

$ docker images
REPOSITORY            TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
verticalize           latest              5f7159b4921a        About a minute ago   317 MB
lindenb/verticalize   latest              5f7159b4921a        About a minute ago   317 MB

Empuje la imagen a dockerhub

$ docker push lindenb/verticalize

The push refers to a repository [lindenb/verticalize] (len: 1)
5f7159b4921a: Image push failed

Please login prior to push:
Username: lindenb
Password:
Email: [email protected]
WARNING: login credentials saved in /home/tatyoyo/.docker/config.json
Login Succeeded
The push refers to a repository [lindenb/verticalize] (len: 1)
5f7159b4921a: Image already exists
68f6ddc7de15: Buffering to Disk

Ya podemos eliminar la imagen local…

$ docker rmi -f  5f7159b4921a

.. y extraiga la imagen de dockerhub

$ docker pull lindenb/verticalize
latest: Pulling from lindenb/verticalize
83e4dde6b9cf: Downloading [==================> ] 24.82 MB/65.79 MB
b670fb0c7ecd: Download complete
29460ac93442: Download complete
d2a0ecffe6fa: Download complete
48e98a1c03ae: Download complete
94ac1beb0514: Download complete
e12eda8693a9: Download complete
5eb1952afbb7: Download complete
fb4ac6e6a264: Download complete
0f8372bacf03: Download complete
789c4f122778: Downloading [=================>  ] 7.511 MB/20.92 MB
68f6ddc7de15: Downloading [=====>              ]  4.99 MB/44.61 MB
5f7159b4921a: Download complete

Al final, ejecute un comando dentro del contenedor docker

mi herramienta verticalizar está instalado en la imagen ‘lindenb/verticalize:latest’ :

$ cat << EOF |  docker run -i lindenb/verticalize:latest
> echo -e "#XtYn1t2n3t4" | verticalize
> EOF

>>> 2
$1 #X 1
$2 Y 2
<<< 2

>>> 3
$1 #X 3
$2 Y 4
<<< 3

Eso es todo,
Pedro

Fuente del artículo

Deja un comentario