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/myPrivateImage
docker login
primero, luego etiquete su imagen:docker tag 518a41981a6a me-private/myPrivateImage
y presione:docker push me-private/myPrivateImage
Solo tres pasos simples:
docker login --username username
--password
que se recomienda, ya que no lo almacena en su historial de comandosdocker tag my-image username/my-repo
docker push username/my-repo
fuente
--password
bandera 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_image
2)
docker run -it chaung/gene_commited_image
3)
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_image
Mé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:push
Tenga 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-docker
Para aquellos de ustedes que no usan Perfiles Maven, simplemente escriba
mvn clean install
Aquí 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 push
comando. 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:latest
Nota : 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
Extraiga la
ubuntu:16.04
imagen 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-ubuntu
imagen de su registro.Extraiga la
localhost:5000/my-ubuntu
imagen de su registro local.Según docs.docker.com , esto es muy inseguro y no se recomienda .
Edite el
daemon.json
archivo, cuya ubicación predeterminada es/etc/docker/daemon.json
Linux oC:\ProgramData\docker\config\daemon.json
Windows Server. Si usaDocker for Mac
oDocker for Windows
, haga clicDocker icon -> Preferences -> Daemon
, agregue elinsecure registry
.Si el
daemon.json
archivo 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-repository
este es elNAME/REPOSITORY
que usará para su imagen cuando construya la imagen.Primero,
docker login
En 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