Comenzando con Docker en CentOS
Docker facilita el manejo de contenedores. Los contenedores en Linux permiten que las aplicaciones se ejecuten independiente del sistema donde están alojados. Un desarrollador puede empaquetar una aplicación junto con las dependencias y librerías. Esto permite simplicar la configuración y la depuración de código tanto en producción como en desarrollo.
Estas son las instrucciones para instalar docker en un servidor centOS del tipo Digital Ocean o Linode. Para instalar docker en CentOS primero revisamos que no haya versiones previas de Docker:
sudo yum remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
Luego se instalan las herramientas necesarias para comenzar con Docker:
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
A continuación se agrega el código estable:
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
Ahora se puede instalar docker:
sudo yum -y install docker-ce
En este momento se puede iniciar y activar docker:
sudo systemctl start docker && sudo systemctl enable docker
Podemos comprobar que docker está instalado descargando y ejecutando hello-world:
sudo docker run hello-world
Para que un usuario diferente de root pueda ejecutar docker hay que agregarlo al grupo:
sudo usermod -aG docker usuario
Para que el cambio se haga efectivo el usuario debe salir e ingresar de nuevo al servidor.
Comandos básicos
Mostrar las imágenes instaladas:
docker image ls
Traer la imagen de nginx de Docker Hub:
docker image pull nginx
Ver detalles de la imagen:
docker image inspect nginx
Ver los contenedores instalados:
docker container ls
Ejecutar el contenedor nginx:
docker container run nginx
Ver los contenedores en ejecución:
docker container ps
Generar imagen con contenido html estático con nginx ejecutándose en segundo plano:
docker run --name mynginx -p 80:80 -d -v ~/docker-nginx/html:/usr/share/nginx/html nginx
Ejecutar comandos de forma interactiva usando el bash del contenedor. Entramos en el prompt del contenedor:
docker container exec -it 74124f68c770 /bin/bash
root@74124f68c770:/#
root@74124f68c770:/# ls
root@74124f68c770:/# exit
Pausar el contenedor:
docker container pause 74124f68c770
Borrar un contenedor que está en ejecución:
docker container rm -f 74124f68c770
Borrar todos los contenedores que no están en ejecución:
docker container prune