Tengo una imagen de Docker etiquetada como me/my-image, y tengo un repositorio privado en el Dockerhub llamado me-private.
Cuando presiono mi me/my-image, siempre termino golpeando el repositorio público.
¿Cuál es la sintaxis exacta para enviar específicamente mi imagen a mi repositorio privado?
docker
docker-registry
Eugene Goldberg
fuente
fuente

Respuestas:
Primero debe etiquetar su imagen correctamente con su
registryhost:Luego, presione Docker usando esa misma etiqueta.
Ejemplo:
fuente
docker tag 518a41981a6a me-private.com/myPrivateImage && docker push me-private.com/myPrivateImagedocker loginprimero, luego etiquete su imagen:docker tag 518a41981a6a me-private/myPrivateImagey presione:docker push me-private/myPrivateImageSolo tres pasos simples:
docker login --username username--passwordque se recomienda, ya que no lo almacena en su historial de comandosdocker tag my-image username/my-repodocker push username/my-repofuente
--passwordbandera si no desea que su contraseña aparezca en el historial. te avisará.Primero vaya a su cuenta de Docker Hub y haga el repositorio. Aquí hay una captura de pantalla de mi cuenta de Docker Hub:
De la foto, puedes ver que mi repositorio es "chuangg"
Ahora ingrese al repositorio y haga que sea privado haciendo clic en el nombre de su imagen. Entonces, para mí, hice clic en "chuangg / gene_commited_image", luego fui a Configuración -> Hacer privado. Luego seguí las instrucciones en pantalla
CÓMO CARGAR SU IMAGEN DOCKER EN EL HUB DOCKER
Método # 1 = Empujar su imagen a través de la línea de comando (cli)
1)
docker commit <container ID> <repo name>/<Name you want to give the image>Sí, creo que tiene que ser la identificación del contenedor. Probablemente no puede ser la ID de la imagen.
Por ejemplo =
docker commit 99e078826312 chuangg/gene_commited_image2)
docker run -it chaung/gene_commited_image3)
docker login --username=<user username> --password=<user password>Por ejemplo =
docker login --username=chuangg [email protected]Sí, primero debes iniciar sesión. Cerrar sesión usando "Docker Logout"
4)
docker push chuangg/gene_commited_imageMétodo # 2 = Empujar su imagen usando pom.xml y la línea de comando.
Tenga en cuenta que utilicé un perfil de Maven llamado "build-docker". Si no desea utilizar un perfil, simplemente elimine los
<profiles>, <profile>, and <id>build-docker</id>elementos.Dentro del padre pom.xml:
Docker Terminal Command para desplegar la imagen de Docker (desde el directorio donde se encuentra su pom.xml) =
mvn clean deploy -Pbuild-docker docker:pushTenga en cuenta que la diferencia entre el Método 2 y 3 es que el Método 3 tiene un extra
<execution>para la implementación.Método # 3 = Usar Maven para implementar automáticamente en Docker Hub
Agregue estas cosas a su padre pom.xml:
Vaya al directorio C: \ Users \ Gene.docker \ y agregue esto a su archivo config.json:
Ahora en su Docker Quickstart Terminal escriba =
mvn clean install -Pbuild-dockerPara aquellos de ustedes que no usan Perfiles Maven, simplemente escriba
mvn clean installAquí está la captura de pantalla del mensaje de éxito:
Aquí está mi pom.xml completo y una captura de pantalla de la estructura de mi directorio:
Aquí está mi directorio de Eclipse:
Aquí está mi Dockerfile:
Error Común # 1:
Solución para el error n. ° 1 = No sincronice la
<execution>fase de despliegue con maven porque entonces maven intenta desplegar la imagen 2x y coloca una marca de tiempo en el jar. Por eso lo usé<phase>install</phase>.fuente
Si el registro de Docker es privado y está autohospedado , debe hacer lo siguiente:
Ejemplo:
fuente
Hay dos opciones:
Vaya al centro, cree primero el repositorio y márquelo como privado. Luego, cuando empuje a ese repositorio, será privado. Este es el enfoque más común.
inicie sesión en su cuenta de Docker Hub y vaya a su configuración global . Hay una configuración que le permite establecer cuál es su visa predeterminada para los repositorios que empuja. De forma predeterminada, se establece en público, pero si lo cambia a privado, todos los repositorios que inserte se marcarán como privados de forma predeterminada. Es importante tener en cuenta que necesitará tener suficientes repositorios privados disponibles en su cuenta, de lo contrario, el repositorio se bloqueará hasta que actualice su plan.
fuente
docker pushcomando. Pero si he entendido bien la pregunta, ninguna de estas respuestas es correcta y la publicada anteriormente por Ken Cochrane es la única que debería aceptarse.Crear repositorio en dockerhub:
$docker tag IMAGE_ID UsernameOnDockerhub/repoNameOnDockerhub:latest$docker push UsernameOnDockerhub/repoNameOnDockerhub:latestNota : aquí "repoNameOnDockerhub": el repositorio con el nombre que está mencionando debe estar presente en dockerhub
"último": es solo etiqueta
fuente
Ref: dock.docker.com
Este tema proporciona información básica sobre la implementación y configuración de un registro
Ejecute un registro local
Antes de poder implementar un registro, debe instalar Docker en el host.
Use un comando como el siguiente para iniciar el contenedor del registro:
start_registry.sh
Copie una imagen de Docker Hub a su registro
Implemente un registro HTTP simpleExtraiga la
ubuntu:16.04imagen de Docker Hub.Etiqueta la imagen como
localhost:5000/my-ubuntu. Esto crea una etiqueta adicional para la imagen existente. Cuando la primera parte de la etiqueta es un nombre de host y un puerto, Docker interpreta esto como la ubicación de un registro, al presionar.Empuje la imagen al registro local que se ejecuta en
localhost:5000:Eliminar las imágenes almacenadas en caché localmente. Esto no elimina la
localhost:5000/my-ubuntuimagen de su registro.Extraiga la
localhost:5000/my-ubuntuimagen de su registro local.Según docs.docker.com , esto es muy inseguro y no se recomienda .
Edite el
daemon.jsonarchivo, cuya ubicación predeterminada es/etc/docker/daemon.jsonLinux oC:\ProgramData\docker\config\daemon.jsonWindows Server. Si usaDocker for MacoDocker for Windows, haga clicDocker icon -> Preferences -> Daemon, agregue elinsecure registry.Si el
daemon.jsonarchivo no existe, créelo. Suponiendo que no hay otras configuraciones en el archivo, debe tener los siguientes contenidos:Con los registros inseguros habilitados, Docker sigue los siguientes pasos:
Reinicie Docker para que los cambios surtan efecto.
fuente
Primero inicie sesión en su repositorio privado.
p.ej:
Y luego etiqueta tu imagen para tu repositorio privado
p.ej:
Finalmente empuje sus imágenes marcadas a su repositorio privado
p.ej:
Referencia
fuente
Solución de trabajo simple:
Vaya aquí
https://hub.docker.com/para crear un repositorio PRIVADO con nombre, por ejemplo,johnsmith/private-repositoryeste es elNAME/REPOSITORYque usará para su imagen cuando construya la imagen.Primero,
docker loginEn segundo lugar, uso "
docker build -t johnsmith/private-repository:01 ." (donde 01 es el nombre de mi versión) para crear la imagen, y uso "docker images" para confirmar la imagen creada, como en este cuadro amarillo a continuación: (lo siento, no puedo pegar el formato de tabla pero solo la cadena de texto )docker push johnsmith/private-repository:01(su repositorio privado estará aquí, ejemplo https://hub.docker.com/r/johnsmith/private-repository/ )¡Hecho!
fuente