Acerca de 【Registro】
- El [Docker hub] oficial es un buen lugar para administrar los espejos públicos. Podemos encontrar los espejos que queramos en él o podemos subir nuestros propios espejos. Sin embargo, a veces, nuestros escenarios de uso requieren que tengamos un almacén espejo privado para administrar nuestros propios espejos. Esto se puede lograr a través del registro de software de código abierto.
- [Registro] Hay dos códigos en github: base de código antiguo y base de código nueva. El código antiguo está escrito en python y hay problemas de rendimiento con pull y push. Después de la versión 0.9.1, se marcará como obsoleto (ver más información = " https://github.com/docker/distribution ), y no continuará el desarrollo.
- Desde la versión 2.0, la nueva base de código se ha desarrollado en la nueva base de código. La nueva base de código está escrita en el lenguaje Go, y se modifica el algoritmo de generación del id del espejo y la estructura de almacenamiento del espejo en el registro, lo que optimiza en gran medida la eficiencia de la duplicación de tracción y empuje. 【Registro2.0】 =》https://hub.docker.com/_/registry/
[¿Qué puede hacer el Regisry? 】
- Controle estrictamente dónde se almacenan sus imágenes;
- Poseer completamente su canal de distribución de imágenes;
- Integre el almacenamiento y la distribución de imágenes firmemente en su flujo de trabajo de desarrollo interno;
Nota: Acerca de la introducción del sitio web oficial de [Registry] =》https://docs.docker.com/registry/
¿Cómo implementar el registro?
- Descargue la imagen de registro de [Docker Hub] = "La versión predeterminada descargada del registro de extracción de docker es la última versión de docker.io/registry
- Ejecute la imagen del registro para generar un contenedor = "docker run -d -v / opt / registry: / var / lib / registry -p 5000: 5000 --restart = always --name registry registry: latest [Registry] El servicio cargar por defecto La imagen se guarda en el / var / lib / registro del contenedor Monte el directorio / opt / registro del host en este directorio para guardar la imagen en el directorio / opt / registro del host.
- Ver contenedores en ejecución = "docker ps / docker container ls Si ve todos, agregue el parámetro -a
- Si el contenedor del registro está funcionando, ingrese [http: // docker host ip: 5000 / v2 /] en el navegador para ver, si el resultado = "{}, significa que el registro se está ejecutando normalmente
[Registro de prueba]
- Cargue la imagen en el registro, nombre la imagen de registro del host en un formato que cumpla con los requisitos del almacén = "[url_registro: puerto / Nombre de la imagen: etiqueta]
--1.先标记镜像格式
docker tag nginx:latest localhost:5000/nginx:latest
--2.把标记格式的镜像推送到registy
docker push localhost:5000/nginx:latest
--注:localhost 为本地环境的ip地址;
- Ver la lista de todos los espejos locales
docker images -a 或 docker image ls -a
-
Extraiga la imagen del registro local
docker pull localhost:5000/nginx:latest
--注:localhost 为本地环境的ip地址;
En este paso, puede haber un problema de que la imagen no se pueda enviar al almacén privado.
The push refers to a repository [localhost:5000/nginx:latest]
The https://localhsot:5000/v2/: http:server gave HTTP response to HTTPS client
1. La razón es que el servicio de registro iniciado localmente no es seguro ni confiable;
2. Solución, modifique el archivo de configuración de la ventana acoplable del cliente /etc/docker/daemon.json para agregar la dirección del servicio de registro
{
"registry-mirrors": [ "https://pee6w651.mirror.aliyuncs.com"],"insecure-registries": ["localhost:5000"]
}
--备注:
1.加速镜像设置 =》"registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"] 是阿里云代理的Registry Hub仓库的地址,可以加快国内访问【Registry Hub】仓库的速度;
2.私有仓库镜像设置 =》"insecure-registries": ["localhost:5000"] 是本地【Registry】服务地址,localhost 为当前 docker 主机ip;
3. [daemon.json] Ruta de almacenamiento = "cd / etc / docker
4. Ver / editar la información de configuración del archivo daemon.json =》 vi daemon.json
5. Salir y guardar =》: wq
Después de la modificación, reinicie la configuración del daemon.json del servicio Docker para que surta efecto, ejecute el comando =》 systemctl restart docker, presione nuevamente para tener éxito, verifique el directorio local / opt / registry (o ingrese http: // localhost: 5000 / v2 / en el navegador) _catalog)
- O use el siguiente comando para ver la información del espejo en el almacén privado local
- curl -XGET http: // registro: 5000 / v2 / _catalog
- curl -XGET http: // registro: 5000 / v2 / nombre_imagen / etiquetas / lista
[Adjunto: dirección de aceleración de espejo]
- Acelerador de imágenes en la nube de Alibaba =》 https://help.aliyun.com/document_detail/60750.html
- Acelerador NetEase Cloud Mirror =》 https://hub-mirror.c.163.com
- Acelerador de espejos oficial de China =》 https://regisry.docker-cn.com
- Acelerador de espejos de la Universidad de Ciencia y Tecnología =》 https://docker.mirrors.ustc.edu.cn
- Acelerador de espejos Tsinghua =》 https://mirrors.tuna.tsinghua.edu.cn
Los pasos anteriores han realizado el proceso de implementación del Registro localmente. Amigos interesados, apúrense y sigan al maestro de la pequeña c para implementarlo paso a paso!