Correr un docker
docker run -it centos /bin/bash
-i -> va a preservar el container (corre en modo interactivo (?))
-t -> Se va a conectar al shell
-d -> Corre el daemon
inspect -> Puedes soliciltar informacion detallada (te retorna un JSON)
docker run -it centos /bin/bash
-i -> va a preservar el container (corre en modo interactivo (?))
-t -> Se va a conectar al shell
-d -> Corre el daemon
inspect -> Puedes soliciltar informacion detallada (te retorna un JSON)
Verificar el S.O.
/etc/os-release (no es un comando docker, pero puedes mirar la informacion del os)
nmap
nmap
nmap localhost (verificar que puertos están abiertos)
Verificar la RAM
free -mh
Verificar espacio de disco
df -h
Agregar usuario
usermod -a -G docker [user]
Instalacion
apt-get install -y docker.io
service docker.io status
Files de contenedores
ls -l /var/lib/docker/aufs/diff/
Mirar las imagenes descargadas
docker images
Ver la configuracion de los contenedores
/var/lib/docker/containers/
Ver contenedores
docker ps -a
Commit
Toma las modificiaciones de un contenedor y crea una nueva imagen
docker commit 3802a4a2a2e9 user_sam/thriftdev:0.9.1
3802a4a2a2e9 -> ID del contenedor
user_sam/thriftdev:0.9.1 -> Nombre de la nueva imagen
docker commit [id o name del contenedor] [Nombre de la nueva imagen]
Entonces he creado una imagen en base de un contenedor que ya estaba creado
Descarga de Imagenes
docker pull fedora (descargara la ultima, mejor dicho el de default. Saldra informacion como latest)
docker pull fedora = docker pull fedora:latest
docker pull fedora:20 (bajara la version 20)
Version de Docker
docker -v
docker version
Informacion de Docker
docker info
Checar si esta actualizado
wget -qO- https://get.docker.com/gpg | apt-key add -
Agregar un source a la lista de apt
echo deb http://get.docker.com/ubuntu docker main > /etc/apt/sources.list/docker.list
Borrar Imagenes
docker rmi [nombre de la imagen]
Borrar contenedores
docker rm [nombre o id del contenedor]
Crear un repositorio (es el que almacena las imagenes que estan tageadas)
docker tag ubuntu:12.04.5 bobsmith/ubuntu:prod_2015-02-15
DOCKER FILE
FROM -> Primera instruccion (Indica la imagen de donde va a partir)
MAINTAINER -> Autor y correo
RUN -> Ejecutar comandos en exec. RUN apt-get install........
EXPOSE -> Va a especificar un puerto para el contenedor
CMD -> Define un ejecutable para el contenedor
History
docker history [nombre de la imagen]
Mirar la imagenes con las capas que contiene
docker images --tree
Para ver las capas de imagenes que tiene
/var/lib/docker/aufs/layers/.
Ejecutar algun comando
docker run ubuntu /bin/bash -c "echo 'cool content' > /tmp/cool-file"
Guardar una imagen en .tar
docker save -o /tmp/backup.tar alex
alex -> Nombre de la imagen
Descomprimir la imagen guardada
tar -tf /tmp/backup.tar
Para cargar la imagen guardada
docker load -i /tmp/alex.tar
Entrar a un docker que esta corriendo
docker exec -it [container-id] bash
Checar si esta actualizado
wget -qO- https://get.docker.com/gpg | apt-key add -
Agregar un source a la lista de apt
echo deb http://get.docker.com/ubuntu docker main > /etc/apt/sources.list/docker.list
Borrar Imagenes
docker rmi [nombre de la imagen]
Borrar contenedores
docker rm [nombre o id del contenedor]
Crear un repositorio (es el que almacena las imagenes que estan tageadas)
docker tag ubuntu:12.04.5 bobsmith/ubuntu:prod_2015-02-15
DOCKER FILE
FROM -> Primera instruccion (Indica la imagen de donde va a partir)
MAINTAINER -> Autor y correo
RUN -> Ejecutar comandos en exec. RUN apt-get install........
EXPOSE -> Va a especificar un puerto para el contenedor
CMD -> Define un ejecutable para el contenedor
History
docker history [nombre de la imagen]
Mirar la imagenes con las capas que contiene
docker images --tree
Para ver las capas de imagenes que tiene
/var/lib/docker/aufs/layers/.
Ejecutar algun comando
docker run ubuntu /bin/bash -c "echo 'cool content' > /tmp/cool-file"
Guardar una imagen en .tar
docker save -o /tmp/backup.tar alex
alex -> Nombre de la imagen
Descomprimir la imagen guardada
tar -tf /tmp/backup.tar
Para cargar la imagen guardada
docker load -i /tmp/alex.tar
Entrar a un docker que esta corriendo
docker exec -it [container-id] bash
docker attach [container-id]
Salir del contenedor sin que se apague
ctrl+p ctrl+q
Agregar un nombre al contenedor
docker run -it --name=[nombre del contenedor] [nombre de la imagen]
docker attach [nombre o id del contenedor] -> Debe estar prendido el contenedor
Inspeccionar contenido importante del contenedor
docker inspect [nombre o id del contenedor]
Salir del contenedor sin que se apague
ctrl+p ctrl+q
Agregar un nombre al contenedor
docker run -it --name=[nombre del contenedor] [nombre de la imagen]
docker attach [nombre o id del contenedor] -> Debe estar prendido el contenedor
Inspeccionar contenido importante del contenedor
docker inspect [nombre o id del contenedor]
Archivos de configuracion de red del contenedor
/var/lib/docker/container/[id del contenedor]/.
Los /etc/resolv.conf de los contenedores se copian igual que el de la maquina anfitrion
Exponer puertos
1er Metodo
Se puede construir a partir de un Dockerfile la nueva imagen con el puerto abierto.
Construir Dockerfile
#Test para el modue de networking
FROM ubuntu:15.04
RUN apt-get update && apt-get install -y iputils-ping traceroute apache2
EXPOSE 80
ENTRYPOINT ["apache2ctl"]
CMD ["-D","FOREGROUND"]
docker build -t="apache-img" .
docker run -d -p 5001:80 --name=web1 apache-img
Construir Dockerfile
#Test para el modue de networking
FROM ubuntu:15.04
RUN apt-get update && apt-get install -y iputils-ping traceroute apache2
EXPOSE 80
ENTRYPOINT ["apache2ctl"]
CMD ["-D","FOREGROUND"]
docker build -t="apache-img" .
docker run -d -p 5001:80 --name=web1 apache-img
2do Metodo
docker run -d -p 5001:80 --name=web1 apache-img
Ver los puertos de un contenedor
docker port [Nombre del contenedor]
Si quieres que se abra un puerto UDP
docker run -d -p 5002:80/udp --name=web2 apache-img
Puedes asignar a una ip especifica de tu interfaz donde se abra el puerto
docker run -d -p 192.168.56.50:5003:80 --name=web3 apache-img
Si hay proxy
Hay que tener en cuenta en el yum
/etc/yum.conf
[main]
proxy=http://proxy-rtp-1.cisco.com:80/
Ver los puertos de un contenedor
docker port [Nombre del contenedor]
Si quieres que se abra un puerto UDP
docker run -d -p 5002:80/udp --name=web2 apache-img
Puedes asignar a una ip especifica de tu interfaz donde se abra el puerto
docker run -d -p 192.168.56.50:5003:80 --name=web3 apache-img
Si hay proxy
Hay que tener en cuenta en el yum
/etc/yum.conf
[main]
proxy=http://proxy-rtp-1.cisco.com:80/