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:2Y 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"]}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.jsonPara despues reiniciar docker:
$ systemctl restart dockerUna 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/alpinePodemos 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 288MBSolo 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
BeyondBlueSky - 2019
Website developed using Symfony 5, Bootstrap 4 and Open Iconic