Docker es una forma de distribuir aplicaciones, donde todas las dependencias, librerías y código están encapsuladas en un artefacto llamado Docker Image que puede ser ejecutado en cualquier servidor que tenga el servicio de Docker Engine.
El servicio usado para almacenar las imágenes Docker es llamado Docker Registry. Docker Hub (docker.io) es un servicio gratuito para subir y descargar imágenes.
Para generar una imagen Docker, lo primero es crear el archivo Dockerfile, El cual lleva la todas las instrucciones necesarias para generar la imagen Docker.
Puedes consultar el archivo Dockerfile aquí.
El comando docker build genera la imagen Docker:
docker build -t ${IMAGE_NAME}:${TAG} .
# Ejemplo, el comando genera una imagen de nombre 'tutorial-docker-php' y tag 'v1.0':
docker build -t tutorial-docker-php:v1.0 .
El comando docker images muestra las imágenes existentes. Puede usarse para confirmar el nombre de una imagen:
docker images
El comando docker tag permite especificar la ruta y nombre de una imagen Docker:
docker tag ${IMAGE_NAME}:${TAG} ${DOCKER_REGISTRY}/${REPOSITORY}:${TAG}
# Ejemplo
docker tag tutorial-docker-php:v1.0 docker.io/inetshelldocs/tutorial-docker-php:v1.0
# Si se utiliza Docker Hub, se puede omitir la dirección 'docker.io'
docker tag tutorial-docker-php:v1.0 inetshelldocs/tutorial-docker-php:v1.0
El comando docker login inicia sesion al Docker Registry:
docker login ${DOCKER_REGISTRY} --username=${USER}
# Ejemplo
docker login docker.io --username=inetshell
El comando docker push sube la imagen al Docker Registry:
docker push ${DOCKER_REGISTRY}/${REPOSITORY}:${TAG}
# Ejemplo
docker push docker.io/inetshelldocs/tutorial-docker-php:v1.0
El comando docker pull descarga la imagen Docker:
docker pull ${DOCKER_REGISTRY}/${REPOSITORY}:${TAG}
# Ejemplo
docker pull docker.io/inetshelldocs/tutorial-docker-php:v1.0
El siguiente comando permite verificar que la imagen ejemplo funciona correctamente
docker run --rm=true -p 80:80 -it inetshelldocs/tutorial-docker-php:v1.0