Instalar Docker en Ubuntu
Docker está soportado en las versiones: 12.04, 14.04, 15.10 y 16.04, y en kernels superiores a la versión 3.10, por lo tanto lo primero será comprobar que tenemos una versión igual o superior:
# uname -r
A continuación instalamos certificados y clave:
# apt-get install apt-transport-https ca-certificates # apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 \ --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Añadimos repositorio
# vi /etc/apt/sources.list.d/docker.list ## Ubuntu Precise 12.04 (LTS) deb https://apt.dockerproject.org/repo ubuntu-precise main ## Ubuntu Trusty 14.04 (LTS) deb https://apt.dockerproject.org/repo ubuntu-trusty main ## Ubuntu Wily 15.10 deb https://apt.dockerproject.org/repo ubuntu-wily main ## Ubuntu Xenial 16.04 (LTS) deb https://apt.dockerproject.org/repo ubuntu-xenial main
Actualizamos y eliminamos posibles repositorios antiguos
# apt-get update # apt-get purge lxc-docker
Verificamos que se accede al repositorio correcto
# apt-cache policy docker-engine
Existen ciertas dependencias que satisfacer en las diferentes versiones de Ubuntu:
Para Ubuntu Xenial 16.04 (LTS), Ubuntu Wily 15.10 y Ubuntu Trusty 14.04 (LTS):
# apt-get install linux-image-extra-$(uname -r) \ && apt-get update && apt-get install docker-engine
Para Ubuntu 14.04 o 12.04
# apt-get install apparmor
Para Ubuntu 12.04 deberemos de contar con un kernel superior a 3.13
# apt-get install linux-image-generic-lts-trusty # reboot # apt-get update && apt-get install docker-engine
Activamos al inicio e iniciamos el demonio
# systemctl enable docker # systemctl start docker
ó
# chkconfig docker on # service docker start
Errores conocidos en Ubuntu
Error cgroup
«WARNING: Your kernel does not support cgroup swap limit. WARNING: Your
kernel does not support swap limit capabilities. Limitation discarded.»
Para solucionarlo seguiremos los siguientes pasos:
# vi /etc/default/grub GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
# update-grub # reboot
Error por cortafuegos
Si estás utilizando ufw en Ubuntu es posible que te esté cortando las conexiones. Primero comprobaremos el estado y si estuviese habilitado y ejecutándose, deberemos de modificar el archivo /etc/default/ufw
# ufw status
Si está habilitado:
# vi /etc/default/ufw DEFAULT_FORWARD_POLICY="ACCEPT"
# ufw reload # ufw allow 2375/tcp
Configurar un servidor DNS para que sea utilizado por Docker
Los usuarios de Docker pueden encontrarse ante el siguiente WARNING al iniciar los contenedores:
«WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers
can’t use it. Using default external servers : [8.8.8.8 8.8.4.4]»
Esto ocurre porque los contenedores de Docker no pueden utilizar un nameserver local como DNS (típicamente 127.0.0.1). En su lugar Docker activa unos DNS externos por defecto, los de Google en este caso.
Para solucionar este warning existen dos opciones:
1. Desactivar dnsmasq en NetworkManager (está opción puede ralentizar la red a causa de la resolución de nombres)
# vi /etc/NetworkManager/NetworkManager.conf #dns=dnsmasq
# service NetworkManager restart # Service docker restart
2. Indicar a Docker que utilice unos DNS específicos (sistemas SysV)
# vi /etc/default/docker DOCKER_OPTS="--dns 8.8.8.8 --dns 192.168.1.1 --dns 89.43.23.11"
# service docker restart
Instalar Docker en Debian
Docker está soportado en las versiones 7.7 (Wheezy) y 8.0 (Jessie), además como en Ubuntu, necesitaremos una versión de kernel superior a la 3.10.
# uname -r
Lo usuarios de Wheezy deben de tener backports habilitados
# vi /etc/apt/sources.list.d/backports.list deb http://http.debian.net/debian wheezy-backports main
# apt-get update
Eliminamos posibles antiguos repositorios:
# apt-get purge "lxc-docker*" && apt-get purge "docker.io*" # apt-get update
Instalamos certificados y clave
# apt-get install apt-transport-https ca-certificates # apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 \ --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Añadimos repositorio
# vi /etc/apt/sources.list.d/docker.list ## Debian Wheezy deb https://apt.dockerproject.org/repo debian-wheezy main ## Debian Jessie deb https://apt.dockerproject.org/repo debian-jessie main
Actualizamos e instalamos
# apt-get update # apt-get install docker-engine
Activamos al inicio e iniciamos el demonio
# systemctl enable docker # systemctl start docker
ó
# chkconfig docker on # service docker start
Importante: Si encontramos repositorios caídos o tenemos diferentes versiones o distribuciones:
https://docs.docker.com/engine/installation/
Para ambas distribuciones
Añadir nuestro usuario al grupo Docker
Si durante la instalación no se ha creado el grupo «docker», deberemos de crearlo:
# groupadd docker
Añadimos nuestro usuario mediante alguno de los dos comandos:
$ gpasswd -a `whoami` docker $ usermod -aG docker `whoami`
Nota: evidentemente podemos utilizar el nombre de usuario en vez de whoami
, en caso de que el usuario que actualmente estamos utilizando no sea con el que queremos administrar Docker
Una vez ejecutado uno de los dos comandos anteriores, deberemos de salir de la terminal y volver a entrar.
Comprobando la instalación
# docker run hello-world
Desinstalar Docker
# apt-get purge docker-engine # apt-get autoremove --purge docker-engine # rm -rf /var/lib/docker # find / -group "docker" -exec rm -rf {} \;