Creación de imagen base CentOS con Dockerfile
1. Preparación del archivo Dockerfile
Primero, creamos un directorio de trabajo y el archivo Dockerfile:
mkdir cont_base
cd cont_base
nano Dockerfile
El contenido del Dockerfile será:
FROM docker.io/centos
LABEL creador="admin"
RUN yum update -y && yum clean all
Explicación de las directivas:
FROM: define la imagen base sobre la que se construyeLABEL: añade metadatos a la imagenRUN yum update -y: actualiza los paquetes del sistemayum clean all: limpia la caché de paquetes para reducir el tamaño
2. Construcción de la imagen
docker build -t centos:v1-base -f ./Dockerfile .
3. Verificación de la imagen creada
docker images
4. Despliegue del contenedor
docker run -itd --network=none --name=cnt-001 centos:v1-base /bin/bash
5. Comprobación del estado del contenedor
docker ps
6. Asignación de IP estática con pipework
pipework eth0 cnt-001 10.0.0.50/24@10.0.0.1
7. Acceso al contenedor y verificación de red
docker exec -it cnt-001 /bin/bash
yum install -y net-tools
ifconfig
Creación de contenedor CentOS con servicio SSH
1. Cofniguración del Dockerfile
mkdir cont_ssh
cd cont_ssh
nano Dockerfile
Contenido del Dockerfile:
FROM docker.io/centos
LABEL creador="admin"
RUN yum install -y openssh-server openssh-clients net-tools sudo \
&& ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" \
&& ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N "" \
&& yum clean all
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
Aspectos clave:
- Se instalan los paquetes necesarios para el servidor SSH
- Se generan las claves de host RSA y Ed25519 (sin passphrase con
-N "") EXPOSE 22expone el puerto SSHCMDinicia el servicio SSH en modo daemon
2. Construcción de la imagen SSH
docker build -t centos:v2-ssh -f ./Dockerfile .
3. Listado de imágenes
docker images
4. Creación del contenedor con SSH
docker run -itd --network=none --name=cnt-002 centos:v2-ssh
5. Verificación de ejecución
docker ps
6. Configuración de IP estática
pipework eth0 cnt-002 10.0.0.51/24@10.0.0.1
7. Acceso al conteneder
docker exec -it cnt-002 /bin/bash
ifconfig
8. Verificación del proceso SSH
ps aux | grep sshd
Nota: Si el proceso SSH no aparece, es probable que se haya añadido
/bin/bashal final del comandodocker run, lo que hace que bash tome precedencia sobre el CMD definido en el Dockerfile.
9. Configuración de usuario para acceso remoto
useradd -m adminusr
passwd adminusr
10. Conexión remota por SSH
Utilizando cualquier cliente SSH (como PuTTY, Terminator u OpenSSH), conectarse con:
- IP: 10.0.0.51
- Usuario: adminusr
- Contraseña: la establecida en el paso anterior