Construyendo nuestras propias imágenes
Clase 14 de 25 • Fundamentos de Docker 2018
Contenido del curso
Clase 14 de 25 • Fundamentos de Docker 2018
Contenido del curso
Carlos Andrés Charris S
Ulises Uriel Cabrera Rubio
Eduardo Flores
Usuario anónimo
Andrés Felipe Carreño
John Soto
yosbelin calorina rodriguez perez
Wilmer Ariel Moina Rivera
Erik Elyager
Iván Darío Sánchez Jiménez
Javi Puc
Javi Puc
Iván Toro
Damian Spizzirri
Guido Vilariño
Diego f
Kirlled Anderson Araque
Jair Israel Avilés Eusebio
William Meza
Enrique Devars
Juan José Jaramillo Cajamarca
José Emanuel Osorio Vázquez
Jesús Andrés Miranda Roa
Richard Dominguez
Wilson Fernando Antury Torres
Hans Piña
Agusitn Machiavello
Joaquin García Santiago
Diego Forero
Alejandro Sanchez
Carlos Javier Bazan Huaman
Gabriel Salvador
DAVID EDUARDO BAEZ SANCHEZ
Crear nuestras imágenes
Dockerfile (receta)dockerfile siempre debe empezar con el FROM le indicamos cual va a ser nuestra imagen base para empezarRUN para correr un comandodockerfile-t es el nombre del tag de la imagen
Ej: FROM ubuntu RUN touch /usr/src/hola-mundo docker build -t ubuntu:platzi .
Hacer push a un contenedor
docker push <tag contenedor>
Ej: docker push <user>/ubuntu:platzi
Cambiar el tag de un contenedor
docker tag <tag contenedor> <nuevo tag contenedor>
Ej: docker tag ubuntu:platzi <user>/ubuntu:platzi
muy bien
buena
Recuerden ejecutar >>docker login, antes de enviar la imagen para loguarse en la plataforma
Muchas gracias compañero.
Gracias por el dato compañero <3
Antes de ejecutar el docker push, se debe ingresar en docker hub con el siquiente comando #docker login
Para realizar el push antes se debe configurar la cuenta de usuario si lo estas realizando desde una distribución de GNU/Linux como Ubuntu:
$ export DOCKER_ID_USER="tu-usuario-docker"$ docker loginGracias por el aporte, esto le sirve a otros compañeros.
Si ya tienen una cuenta y no pueden hacer push, deben loguearse desde la terminal con
docker login
con su credenciales de docker y luego ya pueden hacer push.
Por que me sale acceso denegado? Donde puedo configurar el acceso para que me deje hacer push?
$ docker push angelpuc/ubuntu:platzi The push refers to repository [docker.io/angelpuc/ubuntu] 2cbfad4466fb: Preparing b9b7103af585: Preparing ca2991e4676c: Preparing a768c3f3878e: Preparing bc7f4b25d0ae: Preparing denied: requested access to the resource is denied```
Me respondo:
Hay que hacer
Docker login
Antes de intentar hacer push
Gracias por el dato.
Me da curiosidad eso de que siempre debe existir un from. Como puede ser eso? No puedo crear una imagen desde cero sin nada? Ademas, hubo un momento cero, en el que no existian las imagenes. Como se resolvio ahi?
para crear una imagen desde cero, se usa FROM scratch
Eso lo único que te da es un contenedor con el kernel de linux. Por ejemplo, ve el Dockerfile de la imagen alpine.
FROM scratch ADD rootfs.tar.xz / CMD ["/bin/sh"]
Eso simplemente copia todo el filesystem base de alpine a la imagen y setea el comando por defecto.
Ejemplo DockerFile app node.js
FROM node:10-slim #Creamos un directorio WORKDIR /usr/src/app #Copiamos todos los archivos al directorio creado COPY . . # Se instalan dependencias RUN npm install # Se ejecuta la app CMD [ "npm", "start" ]
Recomendación (al menos para los que estén usando windows). Crear una carpeta nueva y colocar dentro, el archivo Dockerfile. Si tienen muchas carpetas y archivos junto a su Dockerfile, es problable que su consola se tarde una eternidad
Otra alternativa por si aislar el archivo Dockerfile no es una opcion, es la de crear el archivo .dockerignore e indicar todos los archivos que seran ignorados por el Docker daemon al momenter de correr las operaciones (equivalente a lo que es .gitignore).
Gracias @kirlled justo me pasó esto, y busqué en los comentarios y me ayudó tu solución
!
Hacer build
docker build -t ubuntu:platzi .
El punto representa el contexto de el comando docker build que usa mientras hace el build. Es el directorio donde se encuentra nuestro Dockerfile
Hacer push de una imagen
Para subir nuestra imagen a docker hub primero debemos hacer login con:
docker login
y para subir nuestra imagen hacemos:
docker push <repositorio>:<tag>
si queremos retagear nuestra imagen para subirla, podemos usar el comando:
docker tag <nombre_tag_actual> <usuario/nombre_tag_nuevo>
requested access to the resource is denied
Antes de hacer el push al repo, se debe iniciar sesión dentro de Docker, esto lo podemos hacer con el comando:
docker login
En donde se debe ingresar nuestras credenciales de Docker Hub y ahora se puede publicar el repositorio.
Si no les deja subir la imagen a su hub y les aparece:
denied: requested access to the resource is denied
Corran:
docker login
para logearse.
para las personas que aun les sigue dando el mismo error al subir el archivo pueden ingresar aqui:
https://hub.docker.com/settings/security
crean un access token y lo copian, luego se van a la consola de su pc y colocan:
docker login --username <user> les saltara el promt donde les pedira su password, deben colocar el access token que acaban de generar
Vuelven hacer docker push <user>/ubuntu:platzi
Gracias man, esto le falto explicarlo al intructor
Para hacer el push tuve que loguearme en la cuenta de docker desde la terminal. docker login
Importante: el Dockerfile siempre debe empezar con un FROM para poder funcionar.
Yo tengo otro problema al correr :docker build -t ubuntu:platzi .
y es que me dice:
error checking context: 'no permission to read from '/home/agustin/.mysql_history''.
Alguna idea? :(
Cual es la ruta en la que estas trabajando?
Es un problema con la lectura de archivos, puede que necesites ejecutar docker con sudo
asegúrate de tener los permisos necesarios para ejecutar docker con tu usuario, también es importante que revises los permisos de la carpeta .mysql_history
Quiero mencionar en este comentario que un archivo Dockerfile es una receta que contiene la metadata que describe como armar nuestra imagen.
Antes de ejecutar el comando docker push identificate con el comando docker login, con esto podras enviar tu imagen a tu repositorio personal.
Asegúrense de que el directorio donde crean el Dockerfile y lo construyen esté vacío, si no va a tardar mucho en cargar.
Entendido. Me toco utilizar docker log para subir la imagen.
docker login docker pull ubuntu:18.04 touch dockerfile docker build -t ubuntu:dbz . docker run -it ubuntu:dbz docker tag ubuntu:dbz baezdavidsan/ubuntu:dbz docker push baezdavidsan/ubuntu:dbz