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
tú 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