#4sysadmins

Inicio » GNU/Linux » Docker » Instalar Docker en Ubuntu y Debian

Instalar Docker en Ubuntu y Debian

Follow #4sysadmins on WordPress.com

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 {} \;

 

 


Deja un comentario, Gracias!