docker run -p 8080:80 nginx:latest
FROM nginx:latest
RUN echo 'Hi, we are building a custom docker image from nginx:latest!'
COPY nginx-custom-welcome-page.html /usr/share/nginx/html/index.html
<!DOCTYPE html>
<html>
<body>
<h1>Welcome to custom Nginx page!</h1>
</body>
</html>
$ docker build -t nginx_custom:latest -f /opt/src/docker-for-kids/dockerFiles/Nginx-custom/Dockerfile /opt/src/docker-for-kids
Sending build context to Docker daemon 139.3kB
Step 1/3 : FROM nginx:latest
latest: Pulling from library/nginx
31b3f1ad4ce1: Pull complete
fd42b079d0f8: Pull complete
30585fbbebc6: Pull complete
18f4ffdd25f4: Pull complete
9dc932c8fba2: Pull complete
600c24b8ba39: Pull complete
Digest: sha256:0b970013351304af46f322da1263516b188318682b2ab1091862497591189ff1
Status: Downloaded newer image **for** nginx:latest
---**>** 2d389e545974
Step 2/3 : RUN echo 'Hi, we are building a custom docker image from nginx:latest!'
---**>** Running **in** 05ffd060061f
Hi, we are building a custom docker image from nginx:latest!
Removing intermediate container 05ffd060061f
---**>** 9ac62be4252a
Step 3/3 : COPY nginx-custom-welcome-page.html /usr/share/nginx/html/index.html
---**>** 704121601a45
Successfully built 704121601a45
Successfully tagged nginx_custom:latest
version: '3'
services:
nginx:
container_name: nginx-test # nombre del contenedor de Docker
build: # crear una imagen de Docker a partir de un Dockerfile
context: . # ruta en la que se creará la imagen de Docker
dockerfile: ./dockerFiles/nginx/Dockerfile # ruta del Dockerfile desde el que se construirá la imagen de Docker
ports: # reenvío de puertos
- "80:80"
networks: # nombre de la red a la que se conectará el contenedor de Docker
- test-network
depends_on: # este programa se ejecutará solo después de que se ejecute el servicio llamado php-fpm
- php-fpm
volumes: # montaje de directorios, directorio-en-el-host: directorio-en-Docker
- ./:/var/www/hello.dev/
php-fpm:
container_name: php-fpm-test
build:
context: .
dockerfile: ./dockerFiles/php-fpm/Dockerfile
networks:
- test-network
volumes:
- ./:/var/www/hello.dev/
postgres:
container_name: postgres-test
image: postgres:14.1-alpine # etiqueta de la imagen de Docker desde https://hub.docker.com/
environment:
postgres_PASSWORD: mysecretpass # variables de entorno utilizadas por el contenedor de Docker
networks:
- test-network
networks: # redes explícitamente declaradas
test-network:
driver: bridge
index.php
<?php
try {
$pdo = new \PDO("pgsql:host=postgres;dbname=postgres", 'postgres', 'mysecretpass');
echo "¡Conexión a la base de datos establecida correctamente! <br>";
return;
} catch (PDOException $exception) {
echo "Error al conectar a la base de datos<br><b>{$exception->getMessage()}</b><br>";
}
docker-compose up --build