Лабораторна робота №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: