Лабораторна робота №4 Dockerfiles


Завдання:

1. Створіть новий каталог для лабораторної роботи та перейдіть в нього.


mkdir my_docker_lab
cd my_docker_lab

2. Створіть Dockerfile у цьому каталозі з вмістом, що базується на образі Alpine та встановлює веб-сервер Nginx:


# Використання базового образу Alpine
FROM alpine

# Встановлення пакетів Nginx та supervisord
RUN apk update && apk add nginx supervisor

# Копіювання конфігураційних файлів в образ
COPY nginx.conf /etc/nginx/nginx.conf
COPY supervisord.conf /etc/supervisord.conf

# Вказання команд, які будуть виконані при старті контейнера
CMD ["supervisord", "-c", "/etc/supervisord.conf"]
 
3. Створіть конфігураційний файл `nginx.conf` для Nginx та `supervisord.conf` для supervisord у тому ж каталозі:


  nginx
  
worker_processes 1;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    server {
        listen 80;
        server_name localhost;

        location / {
            root /usr/share/nginx/html;
            index index.html;
        }
    }
}

supervisord.conf

[supervisord] nodaemon=true [program:nginx] command=nginx -g "daemon off;" autorestart=true


4. Побудуйте Docker образ за допомогою Dockerfile:

docker build -t my-nginx-image .

5. Запустіть контейнер і перевірте, що налаштування та програми з Dockerfile правильно встановлені в контейнері:

docker run -d --name my-nginx-container -p 8080:80 my-nginx-image

   Перейдіть за адресою `http://localhost:8080` у веб-браузері та переконайтеся, що веб-сервер Nginx працює.

6. Зупиніть та видаліть контейнер, а також видаліть Docker образ:

docker stop my-nginx-container
docker rm my-nginx-container
docker rmi my-nginx-image

7. Додайте параметри до Dockerfile для передачі аргументів під час побудови образу. Додайте аргумент `NGINX_VERSION` для визначення версії Nginx.

ARG NGINX_VERSION=latest
FROM alpine:${NGINX_VERSION}

# Решта Dockerfile
8. Побудуйте новий Docker образ, використовуючи аргументи:

docker build -t my-nginx-image --build-arg NGINX_VERSION=1.20.1 .

9. Після побудови образу переконайтеся, що аргументи були правильно передані та використані у Dockerfile.

10. Створіть нову папку та в ній створіть новий Dockerfile, що базується на образі Ubuntu та встановлює веб-сервер Apache2: