Para levantar un contenedor a partir de un Dockerfile, sigue estos pasos. En tu caso, ya tienes un Dockerfile y los archivos necesarios en el mismo directorio. Aquí te explico cómo hacerlo:
Caso de ejemplo:
❯ ls
static templates venv CSTI.py Dockerfile requirements.txt ### Static layers
FROM alpine:3.7 AS skf-alpine37
LABEL Glenn ten Cate <glenn.ten.cate@owasp.org>
# Installing needed binaries and deps. Then removing unneeded deps:
RUN apk update --no-cache && apk add python3 python3-dev py3-pip bash git dos2unix
### Dynamic layers
FROM skf-alpine37
LABEL Glenn ten Cate <glenn.ten.cate@owasp.org>
RUN addgroup -g 1000 app
RUN adduser -u 1000 -G app -D -h /home/app app
RUN rm -rf /var/cache/apk/APKINDEX*
COPY ./ /home/app/CSTI
# Switching to the new app location:
WORKDIR /home/app/CSTI
RUN chown -R app:app /home/app/CSTI
# Switching to the limited user
USER app
# Installing needed binaries and deps
RUN pip3 install --no-cache-dir --user -r requirements.txt
# Fixing Windows line endings for our students:
RUN find . -name "*.sh" -o -name "*.py" -o -name "*.css" -o -name "*.js" | xargs dos2unix
# Setting chmod +x on the scripts:
RUN find . -name "*.sh" -o -name "*.py" | xargs chmod +x
# Starting the actual application:
ENTRYPOINT [ "python3", "./CSTI.py" ]
1. Construir la imagen Docker
Primero, debes construir la imagen Docker a partir del Dockerfile. Ejecuta el siguiente comando en el directorio donde se encuentra el Dockerfile:
docker build -t csti-app .-t csti-app: Asigna un nombre a la imagen (en este caso,csti-app)..: Indica que elDockerfileestá en el directorio actual.
2. Verificar que la imagen se haya creado
Una vez que la construcción haya finalizado, verifica que la imagen esté disponible en tu sistema:
docker imagesDeberías ver algo como esto:
REPOSITORY TAG IMAGE ID CREATED SIZE
csti-app latest xxxxxxxxxxxx 10 seconds ago 150MB
3. Ejecutar el contenedor
Ahora que tienes la imagen, puedes ejecutar un contenedor a partir de ella. Usa el siguiente comando:
docker run -it --rm csti-app-it: Ejecuta el contenedor en modo interactivo con una terminal.--rm: Elimina el contenedor automáticamente después de que se detenga.csti-app: Es el nombre de la imagen que construiste.
4. (Opcional) Exponer puertos o montar volúmenes
Si tu aplicación necesita exponer un puerto o acceder a archivos en tu sistema, puedes hacerlo con los siguientes parámetros:
-
Exponer un puerto: Si
CSTI.pyescucha en un puerto (por ejemplo, el puerto 5000), usa:docker run -it --rm -p 5000:5000 csti-appEsto mapea el puerto 5000 del contenedor al puerto 5000 de tu máquina.
-
Montar un volumen: Si necesitas acceder a archivos en tu sistema, usa:
docker run -it --rm -v $(pwd):/home/app/CSTI csti-appEsto monta el directorio actual en la ruta
/home/app/CSTIdel contenedor.
5. Verificar que la aplicación esté funcionando
Si todo está configurado correctamente, deberías ver la salida de tu aplicación (CSTI.py) en la terminal. Si la aplicación es un servidor web, abre tu navegador y visita http://localhost:5000 (o el puerto que hayas expuesto).