Привет, любители технологий, новички и те, кто просто хочет узнать, как превратить обычное приложение в суперсовременный контейнер! Сегодня мы сделаем что-то волшебное — создадим первый контейнер Docker! Это как собрать свой первый кубик LEGO — может быть немного страшно, но как только все соберется, ощущения непередаваемые!
Зачем вам это нужно, спросите вы? А зачем, чтобы мир Docker открыл перед вами свои ворота! Контейнеры делают разработку проще, чище и быстрее, так что давайте разберемся, как же их запускать.
Что такое контейнер Docker?
Если вы только начинаете свой путь с Docker, возможно, вам стоит сначала немного углубиться в теорию. Но не переживайте, все максимально просто. Контейнер — это как миниатюрная виртуальная машина, но без лишней тяжести и лишних затрат. Это приложение и все его зависимости, упакованные в один «контейнер». С контейнерами можно легко управлять, переносить их между системами, запускать их в облаке или на вашем компьютере. Просто невероятно удобно!
Контейнеры Docker позволяют запускать ваше приложение в любом месте без беспокойства о несовместимости версий или зависимостях. Это как супергерой для вашего кода — он спасет от всех бед!
Шаг 1: Установка Docker — Время для волшебства!
Перед тем как начать строить контейнеры, вам нужно установить Docker. Но не переживайте, установка Docker — это как налить себе чашечку кофе, просто следуйте инструкциям.
Установка Docker на Ubuntu
- Обновим список пакетов:bashКопироватьРедактировать
sudo apt update
- Установим зависимости:bashКопироватьРедактировать
sudo apt install apt-transport-https ca-certificates curl software-properties-common
- Добавим официальный репозиторий Docker:bashКопироватьРедактировать
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
- Обновим список пакетов и установим Docker:bashКопироватьРедактировать
sudo apt update sudo apt install docker-ce
- Проверьте, что Docker установлен правильно:bashКопироватьРедактировать
sudo systemctl status docker
Если все прошло успешно, вы увидите сообщение, что Docker работает.
Шаг 2: Запускаем первый контейнер — Пора творить!
Теперь, когда у нас есть Docker, давайте создадим свой первый контейнер. Итак, представьте, что вы — алхимик, а Docker — это ваш волшебный котел. Мы будем превращать простое приложение в контейнер, который работает где угодно!
Самый простой способ запустить контейнер — это использовать официальный образ Docker, например, образ с Nginx (огромный веб-сервер, который любит все делать быстро).
- Введите следующую команду, чтобы загрузить и запустить образ Nginx:bashКопироватьРедактировать
sudo docker run -d -p 8080:80 --name my-first-container nginx
Что происходит в этой команде?-d
— запускает контейнер в фоновом режиме (вы не хотите, чтобы ваш терминал был заблокирован).-p 8080:80
— это маппинг портов: первый порт — это порт на вашем хосте (компьютере), второй — порт внутри контейнера. То есть вы будете доступны по адресуhttp://localhost:8080
.--name my-first-container
— присваиваем контейнеру имя для удобства.nginx
— это имя образа, который мы будем использовать.
- Поздравляю! Вы только что создали и запустили свой первый контейнер с Nginx. Теперь откройте браузер и перейдите по адресу
http://localhost:8080
. Вы должны увидеть приветственную страницу Nginx. Магия, не так ли?
Шаг 3: Управление контейнерами — Как не потеряться в контейнерном мире?
Теперь, когда ваш первый контейнер живет своей жизнью, давайте научимся управлять контейнерами, как настоящие мастера.
- Проверка запущенных контейнеров:Чтобы увидеть все запущенные контейнеры, используйте команду:bashКопироватьРедактировать
sudo docker ps
Эта команда покажет вам список контейнеров, которые работают в данный момент. Если вы хотите увидеть все контейнеры, включая остановленные, используйте:bashКопироватьРедактироватьsudo docker ps -a
- Остановка контейнера:Если вы хотите остановить контейнер, используйте команду:bashКопироватьРедактировать
sudo docker stop my-first-container
Эта команда остановит ваш контейнер с именемmy-first-container
. - Удаление контейнера:Чтобы удалить контейнер, используйте:bashКопироватьРедактировать
sudo docker rm my-first-container
О! Теперь контейнер больше не существует. Прощай, контейнер, мы тебя не забудем! - Просмотр логов контейнера:Хотите узнать, что делает ваш контейнер? Пожалуйста:bashКопироватьРедактировать
sudo docker logs my-first-container
Это поможет вам увидеть, что происходит внутри контейнера. Это как подглядывать в окно, не раскрывая дверей.
Шаг 4: Dockerfile — Создайте свой собственный контейнер
Теперь, когда вы уверенно управляете контейнерами, давайте углубимся в более интересное. Как создать свой собственный контейнер? Да, мы можем собрать свой контейнер с нуля! С помощью Dockerfile.
- Создайте новый файл с именем
Dockerfile
в пустой директории и откройте его:bashКопироватьРедактироватьtouch Dockerfile nano Dockerfile
- В этом файле опишем, как должен быть построен наш контейнер. Давайте создадим простой контейнер с Python, который будет запускать приложение «Привет, мир!» на Flask.В
Dockerfile
напишем следующее:dockerfileКопироватьРедактировать# Базовый образ FROM python:3.8-slim # Рабочая директория WORKDIR /app # Установка зависимостей COPY requirements.txt . RUN pip install -r requirements.txt # Копирование исходников COPY . . # Открытие порта EXPOSE 5000 # Команда для запуска приложения CMD ["python", "app.py"]
Важно: этот файл говорит Docker, что нужно сделать. Мы:- Берем образ с Python.
- Создаем рабочую директорию.
- Копируем файл с зависимостями
requirements.txt
и устанавливаем Flask. - Копируем весь код.
- Открываем порт 5000 для нашего приложения.
- Запускаем приложение с помощью
app.py
.
- Создадим файл
requirements.txt
с зависимостями:textКопироватьРедактироватьflask
- Напишем код для приложения
app.py
:pythonКопироватьРедактироватьfrom flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Привет, мир!' if __name__ == '__main__': app.run(host='0.0.0.0')
- Теперь, когда все готово, соберем наш контейнер:bashКопироватьРедактировать
sudo docker build -t my-python-app .
- После сборки запустим контейнер:bashКопироватьРедактировать
sudo docker run -d -p 5000:5000 my-python-app
- Откройте браузер и перейдите по адресу
http://localhost:5000
. Вы должны увидеть «Привет, мир!». Это ваш первый собственный контейнер, работающий с Python и Flask!
Заключение: В путь, к новым горизонтам контейнеров!
Поздравляю! Вы только что создали и запустили свой первый контейнер Docker. Да, это был не самый сложный контейнер, но теперь вы знаете основы, и это откроет перед вами безбрежный мир возможностей.
Docker — это как палитра художника для разработчика. С его помощью вы можете создавать, управлять и запускать приложения в любых условиях. И как бы ни было страшно на старте, с каждым новым контейнером вы будете чувствовать себя уверенно!
Продолжайте экспериментировать, и кто знает, может, ваш следующий контейнер будет запускать целую экосистему микросервисов! Удачи и да прибудет с вами сила контейнеров!