Card image cap

Crear repositorio local Docker

by Josep Llauradó Selvas


Posted on 2020-11-19


Es posible que tengais la necesidad, en algun momento, de tener que desplegar imagenes de forma local en una organización, sin querer usar repositorios públicos, como docker-hub. Crear un repositorio local es realmente muy sencillo, y con un solo comando se puede hacer. Luego es acostumbrarse a gestionar los tags, etc, así como permitir que kubernetes acceda al repositorio ‘inseguro’.

 

Instalación:

Hacerlo es muy fácil. Solo hacer falta ejecutar una imagen registry para poder hacerlo. Podeis verlo en los siguientes pasos:

$ docker run -d -p 5000:5000 --restart=always --name registry registry:2

Y para verificar el contenido de un repositorio, solo hace falta usar el comando curl por ejemplo:

$ curl http://<private-server.localnet.com>:5000/v2/_catalog
{"repositories":["alpine"]}

En kubernetes:

Una vez hecho esto hace falta añadir una linea en vuestro daemon.json. Si no lo teneis, podeis crearlo con el siguiente comando (importante usar la IP):

# echo '{ "insecure-registries":    ["xxx.xxx.xxx.xxx:5000"] }' > /etc/docker/daemon.json

Para despues reiniciar docker:

$ systemctl restart docker

En nuestro docker local

Una vez tengamos esto hecho, en nuestro docker local podremos crear imagenes añadiendoles el tag de la dirección del servidor:

$ docker tag alpine <private-server.localnet.com>:5000/alpine
$ docker push <private-server.localnet.com>:5000/alpine

Podemos ver las imagenes con el comando:

$ docker images
REPOSITORY                            TAG                                              IMAGE ID            CREATED             SIZE
sapwm2_web                            latest                                           cd1d6d0e0213        5 days ago          672MB
sapwm2_db                             latest                                           addc1bb27334        5 days ago          406MB
dmtest_db                             latest                                           673ca3102c87        8 days ago          406MB
finmgr_web                            latest                                           70e4c34462bc        4 weeks ago         551MB
docker/desktop-kubernetes             kubernetes-v1.19.3-cni-v0.8.5-critools-v1.17.0   7f85afe431d8        5 weeks ago         285MB
io50.fiberpachs.com:5000/sapwm2_web   latest                                           21edc2bd6ce5        5 weeks ago         596MB
finmgr_db                             latest                                           ac5156c4b4ec        5 weeks ago         406MB
io50.fiberpachs.com:5000/sapwm2_db    latest                                           ac5156c4b4ec        5 weeks ago         406MB
php                                   7.3-apache                                       f3ee8daba794        5 weeks ago         410MB
mariadb                               latest                                           4e7e0dfceed8        6 weeks ago         406MB
docker/desktop-kubernetes             kubernetes-v1.18.8-cni-v0.8.5-critools-v1.17.0   e777077bd5d8        2 months ago        292MB
k8s.gcr.io/kube-proxy                 v1.18.8                                          0fb7201f92d0        3 months ago        117MB
k8s.gcr.io/kube-controller-manager    v1.18.8                                          6a979351fe5e        3 months ago        162MB
k8s.gcr.io/kube-apiserver             v1.18.8                                          92d040a0dca7        3 months ago        173MB
k8s.gcr.io/kube-scheduler             v1.18.8                                          6f7135fb47e0        3 months ago        95.3MB
docker/desktop-storage-provisioner    v1.1                                             e704287ce753        7 months ago        41.8MB
docker/desktop-vpnkit-controller      v1.0                                             79da37e5a3aa        8 months ago        36.6MB
k8s.gcr.io/pause                      3.2                                              80d28bedfe5d        9 months ago        683kB
k8s.gcr.io/coredns                    1.6.7                                            67da37a9a360        9 months ago        43.8MB
k8s.gcr.io/etcd                       3.4.3-0                                          303ce5db0e90        13 months ago       288MB

Notas finales

Solo comentar que si queremos hacer un docker push desde un Docker Desktop que tengamos local a nuestro nuevo repositorio, antes deberemos añadir la siguiente configuración a nuestro Docker local: En Settings → Docker Engine:

{
 "registry-mirrors": [],
 "insecure-registries": [
   "<server-ip>:5000"
 ],
 "debug": true,
 "experimental": false
}
homepage
Leave a Comment:


BeyondBlueSky - 2019

Website developed using Symfony 5, Bootstrap 4 and Open Iconic