Estoy tratando de configurar un registro de Docker privado usando la imagen tomada de: https://github.com/docker/docker-registry
Simplemente ejecutando:
docker run -p 5000:5000 registry
Puedo extraer / empujar desde / hacia este repositorio solo desde localhost, pero si intento acceder a él desde otra máquina (usando una dirección privada en la misma LAN), falla con un mensaje de error:
*2014/11/03 09:49:04 Error: Invalid registry endpoint https ://10.0.0.26:5000/v1/':
Get https:// 10.0.0.26:5000/v1/_ping: Forbidden. If this private
registry supports only HTTP or HTTPS with an unknown CA certificate,
please add `--insecure-registry 10.0.0.26:5000` to the daemon's
arguments. In the case of HTTPS, if you have access to the registry's
CA certificate, no need for the flag; simply place the CA certificate
at /etc/docker/certs.d/10.0.0.26:5000/ca.crt*
Lo que me vuelve loco es que puedo acceder a él con éxito usando:
curl 10.0.0.26:5000
y / ocurl 10.0.0.26:5000/v1/search
Tampoco entiendo dónde y cómo debo pasar la --insecure-registry
bandera.
docker
remote-access
docker-registry
Ofer Eliassaf
fuente
fuente
Respuestas:
OK, encontré la solución a esto, después de un día de excavación.
Para Docker por debajo de 1.12.1:
Resulta que la nueva versión del cliente se niega a trabajar con un registro privado sin SSL.
Para solucionar este problema, el demonio en la máquina cliente debe iniciarse con el indicador inseguro:
Sólo tipo:
y entonces
(reemplace el
10.0.0.26
con su propia dirección IP).Esperaría que los chicos de Docker agreguen esta opción a la línea de comando de extracción / inserción ...
Editar, alternativamente, puede agregar la bandera a la
DOCKER_OPTS
variable env dentro de / etc / default / docker ... y luegosudo service docker restart
Edite de nuevo: parece que los chicos de Docker están en eso, y pronto habrá una solución: https://github.com/docker/docker/pull/8935
Para la ventana acoplable 1.12.1:
Siga a continuación la respuesta de vikas027 (válido para centos)
fuente
docker -H tcp://remote-host-ip:5000 images
pero volví con un error.docker search remote-host-ip:5000/image-name
ydocker pull remote-host-ip:5000/image-name
ambos funcionan bien. Ahora, ¿cómo hago para que enumere las imágenes ...--insecure-registry
es una solución alternativa y no una solución.Esto es lo que funcionó para mí en CentOS 7.2 y Docker 1.12.1 (la última fecha). Mi registro privado v2 se estaba ejecutando
192.168.1.88:5000
, cámbielo en consecuencia. Esto también funciona si tiene varios registros, solo siga agregando--insecure-registry IP:Port
fuente
/lib/systemd/system/docker.service
Ubuntu 16.04.--insecure-registry
es una solución alternativa y no una solución.Edite el archivo de configuración "/ etc / default / docker"
agregue la línea al final del archivo
(reemplace 192.168.2.170 con su propia dirección IP)
y reinicie el servicio Docker
fuente
/etc/init.d/docker
plano no funciona en Ubuntu 14.04, sorprendentemente. Pero tu solución lo/etc/default/docker
hace.--insecure-registry
es una solución alternativa y no una solución.Encontré lo siguiente muy útil ya que analiza cómo se configura el servicio Docker en sí. https://docs.docker.com/articles/systemd/
Junto con este artículo sobre el comando systemctl https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units
Utilicé la siguiente serie de comandos en un contenedor basado en Centos 7 con una imagen de registro obtenida por "docker pull registry: 2.1.1"
Y dentro de override.conf se agregó lo siguiente.
Tenga en cuenta que la primera, en blanco, ExecStart = borra todo lo que ya está en su lugar, así que asegúrese de agregar cualquier cosa de la declaración /usr/lib/systemd/system/docker.service ExecStart = que desee retener.
Si no especifica la opción -d (demonio), obtendrá el error "Por favor, especifique solo una -H".
Después de emitir la siguiente serie de comandos, puedo ver mis anulaciones en su lugar.
NOTA: La información proporcionada por las líneas Loaded: y Drop-In: en el mensaje de estado, es útil para verificar qué está sucediendo con un demonio docker preexistente para que funcione.
NOTA: También eche un vistazo al archivo Loaded: docker.service para un EnvironmentFile = para obtener más pistas.
fuente
--insecure-registry
es una solución alternativa y no una solución.Okay. Así es como lo hice funcionar. Si ve este error en la ventana acoplable 1.3.2 o superior, haga esto
ir
/etc/sysconfig/docker
y correr
sudo service docker restart
fuente
--insecure-registry
es una solución alternativa y no una solución.use el siguiente comando reemplazando {YOUR_REGISTRY} con su registro
fuente
boot2docker
es un juego de herramientas independiente irrelevante para el contexto de la pregunta.--insecure-registry
es una solución alternativa y no una solución.edite el archivo docker.service, agregue --insecure-registry xxxx después de la marca -d, reinicie la ventana acoplable
esto es lo único que funcionó para mí, el DOCKER_OPTS no tuvo ningún efecto
fuente
--insecure-registry
es una solución alternativa y no una solución.Docker 1.12.1
Para CentOS 7.2
Para ubuntu 16.04
Parece que la opción --insecure-registry se puede usar con y sin el "=" entre esta y la ID del registro.
fuente
--insecure-registry
es una solución alternativa y no una solución.Descubrí que la versión del cliente de la ventana acoplable y la versión de la ventana acoplable del registro deben coincidir; de lo contrario, se encontrarían con problemas de conectividad, a pesar de tener todo en su lugar.
fuente
Solución de dos pasos (sin
--insecure-registry
):/etc/docker/certs.d/$HOSTNAME/
directorioAhora su ventana acoplable confiará en su certificado autofirmado.
fuente
Esto se basa en la respuesta de vikas027 en Centos 7 y Docker 1.12
Como estoy detrás de un proxy, mi solución completa fue ...
/etc/systemd/system/docker.service.d/http-proxy.conf
/usr/lib/systemd/system/docker.service
y no te olvides de reiniciar :)
fuente
--insecure-registry
es una solución alternativa y no una solución.Configuración del registro inseguro local en la ventana acoplable junto con el proxy:
1) en ubuntu agregue la siguiente bandera --insecure-registration IP: port bajo DOCKER_OPTS en el archivo / etc / default / docker
1.1) configure la variable env no_proxy para omitir la IP local / nombre de host / nombre de dominio ... ya que el proxy puede lanzar un mensaje interactivo ... como continuar y este mensaje intermedio confunde al cliente de Docker y finalmente se agota el tiempo de espera ...
1.2) si el nombre de dominio está configurado ... entonces no olvide actualizar el archivo / etc / hosts si no usa DNS.
1.3) en / etc / default / docker configure las variables env http_proxy y https_proxy ... ya que permite descargar imágenes desde centros externos de la empresa. formato http_proxy = http: // nombre de usuario: contraseña @ proxy: puerto
2) reinicie el servicio docker ... si está instalado como servicio, use sudo service docker restart
3) reinicie el contenedor del registro [sudo docker run -p 5000: 5000 registro: 2]
4) etiquete la imagen requerida usando sudo docker tag imageid IP: puerto / imagename / tagname ifany
5) empujar la imagen ... sudo docker empujar ip: puerto / nombre de imagen
6) Si desea extraer la imagen de otra máquina, diga B sin TLS / SSL, entonces en B aplique los conjuntos 1,1.1 y 2. Si estos cambios no se realizan en la máquina B ... la extracción fallará.
fuente
--insecure-registry
es una solución alternativa y no una solución.Para ahorrarte molestias, ¿por qué no utilizas el servicio de registro de Docker privado GRATUITO proporcionado por gitlab? Funciona muy bien
https://about.gitlab.com/2016/05/23/gitlab-container-registry/
Su registro es seguro, por lo que no tendrá ningún problema.
fuente
Ubuntu 16.04
Crear (no existe) archivo
/etc/systemd/system/docker.service.d/registry.conf
con contenido:entonces
fuente
Además de las respuestas anteriores, estoy agregando lo que funcionó en "Docker para Mac" para mí:
fuente