Мені часом потрібно перевірити якісь дії чи сценарії в Ubuntu, іноді я для цього використовував віртуальні машини, але для швидких тестів я спробую використати Docker.
На моєму сайті я вже маю декілька статей про Docker, цей запис це еволюційне продовження моїх експериментів.
Щоб створити в Docker образ з Ubuntu, що містить пакет sudo та можливість створювати користувачів, потрібно створити Dockerfile з таким змістом:
FROM ubuntu:latest
# Оновити пакетний менеджер та встановити пакет sudo
RUN apt-get update && apt-get install -y sudo
# Створити користувача з іменем user та паролем user
RUN useradd -m user && echo "user:user" | chpasswd && adduser user sudo
# Встановити nginx та Flask
RUN apt-get update && apt-get install -y nginx python3-pip && pip3 install Flask
# Запустити nginx при старті контейнера
CMD ["nginx", "-g", "daemon off;"]
Цей Dockerfile базується на останньому офіційному образі Ubuntu, оновлює пакетний менеджер, встановлює пакет sudo, створює користувача з іменем “user” та паролем “user”, надає йому права sudo, встановлює Nginx та Flask, та налаштовує запуск Nginx при старті контейнера.
Щоб створити образ з Dockerfile, потрібно виконати команду docker build
. Наприклад:
docker build -t my-ubuntu-image .
Ця команда збереже створений образ під ім’ям “my-ubuntu-image”.
Після створення образу, можна створити контейнер на його основі за допомогою команди docker run
. Наприклад:
docker run -it --name my-ubuntu-container my-ubuntu-image
Ця команда створить новий контейнер на основі образу “my-ubuntu-image”, та запустить його в інтерактивному режимі з ім’ям “my-ubuntu-container”.
Щоб зберегти контейнер в Docker як образ, виконайте наступну команду у терміналі:
docker commit <container_id> <image_name>:<tag>
де <container_id>
– це ідентифікатор контейнера, який ви хочете зберегти як образ, <image_name>
– це ім’я образу, яке ви хочете надати вашому контейнеру, і <tag>
– це тег образу, який ви хочете встановити.
Наприклад, якщо ви хочете зберегти контейнер з ідентифікатором c2ff4bf4362a
як образ з іменем myimage
та тегом v1
, то команда буде мати наступний вигляд:
docker commit c2ff4bf4362a myimage:v1
Після того, як команда виконається успішно, ви можете переглянути список доступних образів, використовуючи команду docker images
. Збережений вами образ буде вказаний у списку разом з іншими образами, які ви маєте на вашій машині.