Cómo configurar el registro privado de Docker en CentOS 7.x / RHEL 7.x

Cada vez que instalamos Docker en servidores CentOS o RHEL, el registro público de Docker está habilitado, por lo que cuando ejecutamos ‘tirar de la ventana acoplable‘ o ‘búsqueda acoplable‘ irá al registro público de Docker (Centro acoplable) y obtendrá las imágenes de contenedor requeridas. Pero no es idea obtener las imágenes del contenedor de Docker del registro público cuando se utiliza Docker en una organización; como práctica recomendada, deberíamos tener nuestro propio registro o repositorio privado de Docker. Docker Registry o repositorio es un lugar donde se almacenan las imágenes de contenedores de Docker.

En este artículo demostraré cómo configurar nuestro propio Registro privado Docker en CentOS 7.x/RHEL 7.x. Usaré tres servidores CentOS 7.x y supondré que Docker ya está instalado y su servicio está en funcionamiento en los tres servidores. A continuación se muestran los detalles de mis tres servidores:

  • docker-repo.example.com { 192.168.0.60} -> Actuará como mi servidor de registro privado Docker
  • dkengine1.example.com { 192.168.0.70} -> En este servidor, los administradores y desarrolladores de Docker crearán sus propias imágenes de contenedor con dockerfile o con compose y luego cargarán estas imágenes en su propio servidor de registro privado de docker (docker-repo. ejemplo.com) con el comando push docker
  • dkengine2.example.com { 192.168.0.80} -> En este servidor, descargaremos imágenes del contenedor docker desde nuestro propio servidor de registro privado con ‘tirar de la ventana acoplablecomando

Nota : Actualice el archivo /etc/hosts en caso de que el servidor DNS no esté configurado para que se pueda acceder a los servidores con su respectivo nombre de host o nombre dns.

192.168.0.60     docker-repo.example.com docker-repo
192.168.0.70     dkengine1.example.com  dkengine1
192.168.0.80     dkengine2.example.com dkengine2

Docker-Private-Registry-Configuración

Realice los siguientes pasos para configurar nuestro propio Docker Private Registry según el escenario discutido anteriormente

Paso:1 Descargue e inicie el Contenedor de registro en su servidor de registro privado

Inicie sesión en el servidor que desea configurar como Docker Private Registry Server, en mi caso es «docker-repo.example.com». Supongo que el paquete Docker ya está instalado y su servicio está en funcionamiento. En caso de que Docker no esté instalado, consulte lo siguiente

La siguiente tarea es iniciar el programa o secuencia de comandos que configurará y convertirá su servidor en Registry Server. Ese programa o secuencia de comandos se inicia ejecutando un contenedor de registro docker. Primero descarguemos el contenedor de registro usando el comando debajo

[[email protected] ~]# docker pull registry

Una vez descargada la imagen, verifique qué comandos se ejecutarán cuando iniciemos la imagen del contenedor de registro.

[[email protected] ~]# docker history registry

Docker-historial-registro-comando

Ahora inicie el contenedor de registro usando el siguiente comando

[[email protected] ~]# docker run -dit -p 5000:5000 --name registry registry
bf8e703b0149211bb923beeb042f8e656bf407b21646f101eb58e0acd4409c24
[[email protected] ~]#

El comando anterior iniciará el contenedor de registro con el registro de nombres y también estableceremos la regla de palmaditas para que si llega alguna solicitud a ‘docker-repo.ejemplo.com‘ en el puerto 5000, la solicitud se redirigirá al contenedor de registro en el puerto 5000.

[[email protected] ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
bf8e703b0149        registry            "/entrypoint.sh /e..."   5 minutes ago       Up 5 minutes        0.0.0.0:5000->5000/tcp   registry
[[email protected] ~]#

Nota: En caso de que el firewall esté habilitado en su servidor de registro privado, abra el puerto 80 con el siguiente comando

[[email protected] ~]# firewall-cmd --permanent --add-port=80/tcp
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]#

Paso: 2 Cree la imagen del contenedor Docker y cárguela en el servidor de registro privado

Supongamos que he compilado la imagen del contenedor docker de Ubuntu 16.04 con Dockerfile en ‘dkengine1.ejemplo.com‘. En caso de que no esté familiarizado con dockerfile, consulte lo siguiente:

Podemos cargar una imagen de contenedor en el servidor de registro con el comando «docker push», pero antes de comenzar a cargarlo, debemos realizar dos cambios.

1 Asegúrese de que el nombre de la imagen se cree con el formato “nombre del servidor: número de puerto/nombre de la imagen: etiquetas“. De forma predeterminada, el comando docker pull intentará cargar la imagen en el registro público y, si creamos un nombre de imagen con el formato mencionado anteriormente, el comando docker pull lo cargará en el servidor mencionado en el nombre de la imagen. entonces, en mi caso, el nombre del servidor sería «docker-repo.example.com»

Para cambiar el nombre de la imagen de la ventana acoplable, use el comando de etiqueta de la ventana acoplable, el ejemplo se muestra a continuación

[[email protected] ~]# docker tag ubuntu:16.04 docker-repo.example.com:5000/ubuntu:16.04 
[[email protected] ~]#

2 Cambie la conexión https push de la ventana acoplable a http. Siempre que usemos el comando ‘docker push’, intentará establecer una conexión https con el servidor de registro, pero en el caso de la configuración del servidor de registro privado, solo acepta la conexión http del cliente (dkengine1.example.com)

Edite el archivo “/usr/lib/systemd/system/docker.servicio” y cambiar el parámetro

ExecStart=/usr/bin/dockerd

a

ExecStart=/usr/bin/dockerd –insecure-registry docker-repo.example.com:5000

docker-servicio-archivo

Vuelva a cargar el servicio daemon y reinicie el servicio Docker

[[email protected] ~]# systemctl daemon-reload
[[email protected] ~]# systemctl restart docker
[[email protected] ~]#

Ahora cargue la imagen en el servidor de registro privado usando el comando debajo

[[email protected] ~]# docker push docker-repo.example.com:5000/ubuntu:16.04
The push refers to a repository [docker-repo.example.com:5000/ubuntu]
56827159aa8b: Pushed
440e02c3dcde: Pushed
29660d0e5bb2: Pushed
85782553e37a: Pushed
745f5be9952c: Pushed
16.04: digest: sha256:6b079ae764a6affcb632231349d4a5e1b084bece8c46883c099863ee2aeb5cf8 size: 1357
[[email protected] ~]#

Paso: 3 Descargue la imagen del contenedor Docker desde el servidor de registro privado

Inicie sesión en el servidor ‘dkengine2.example.com’ y use el comando ‘docker pull’ para descargar la imagen del contenedor desde su servidor de registro privado. Por defecto, el comando docker pull también establece una conexión https con el servidor de registro, pero nuestro registro privado solo acepta una conexión http.

Edite el archivo “/usr/lib/systemd/system/docker.service” y cambie el parámetro

ExecStart=/usr/bin/dockerd

a

ExecStart=/usr/bin/dockerd –insecure-registry docker-repo.example.com:5000

Vuelva a cargar el servicio daemon y reinicie el servicio docker

[[email protected] ~]# systemctl daemon-reload ; systemctl restart docker
[[email protected] ~]#

Ahora descargue la imagen del contenedor usando el comando debajo

[[email protected] ~]# docker pull docker-repo.example.com:5000/ubuntu:16.04
16.04: Pulling from ubuntu
fec6b243e075: Pull complete
190e0e9a3e79: Pull complete
0d79cf192e4c: Pull complete
38398c307b51: Pull complete
356665655a72: Pull complete
Digest: sha256:6b079ae764a6affcb632231349d4a5e1b084bece8c46883c099863ee2aeb5cf8
Status: Downloaded newer image for docker-repo.example.com:5000/ubuntu:16.04
[[email protected] ~]#

Ahora verifique la imagen con ‘Imágenes de dockercomando

[[email protected] ~]# docker images
REPOSITORY                            TAG                 IMAGE ID            CREATED             SIZE
docker-repo.example.com:5000/ubuntu   16.04               0ef2e08ed3fa        3 weeks ago         130 MB
[[email protected] ~]#

Eso es todo de este artículo. Espero que tengan una idea de cómo configurar su propio Docker Private Registry Server. Si te gusta este artículo, no dudes en compartirlo 🙂

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *