Привет! Сегодня я хочу поделиться своим опытом запуска двух контейнеров‚ связанных одной сетью‚ и получения доступа к базе данных в первом контейнере через второй контейнер с веб-интерфейсом phpMyAdmin. Уверен‚ что эта информация будет полезна для тех‚ кто хочет быстро настроить окружение для разработки или тестирования.Для начала нам понадобится Docker‚ так как мы будем использовать его для создания и управления контейнерами. Если у вас его еще нет‚ рекомендую установить Docker‚ следуя инструкциям на официальном сайте.Итак‚ приступим к первому шагу – запуску контейнера с базой данных MySQL. Мы будем использовать образ MariaDB‚ который доступен на Docker Hub. Сперва откроем терминал (или командную строку в Windows) и введем следующую команду⁚
docker run -d —name db-container —network my-network -e MYSQL_ROOT_PASSWORDmy-secret-pw mariadb⁚10.8
Давайте разберем‚ что она значит. С флагом `-d` мы запускаем контейнер в фоновом режиме‚ `—name db-container` дает контейнеру имя `db-container`‚ `—network my-network` указывает‚ что контейнер будет подключен к сети с именем `my-network`‚ а `-e MYSQL_ROOT_PASSWORDmy-secret-pw` задает пароль для пользователя root в базе данных.Теперь‚ когда у нас есть контейнер с базой данных‚ перейдем ко второму контейнеру‚ содержащему phpMyAdmin. Откройте новое окно терминала и выполните следующую команду⁚
docker run -d —name phpmyadmin-container —network my-network -e PMA_HOSTdb-container -p 8080⁚80 phpmyadmin/phpmyadmin
Снова давайте разберем команду. Флаг `-p 8080⁚80` говорит Docker прокинуть порт 8080 из контейнера в порт 80 на хостовой машине‚ чтобы мы могли получить доступ к веб-интерфейсу phpMyAdmin через веб-браузер. `-e PMA_HOSTdb-container` указывает‚ что phpMyAdmin должен использовать контейнер `db-container` в качестве хоста базы данных.
Теперь‚ если вы откроете веб-браузер и введите `http://localhost:8080`‚ вы должны увидеть веб-интерфейс phpMyAdmin‚ который будет подключен к базе данных в контейнере `db-container`.
Для проверки‚ я создал несколько таблиц в базе данных и успешно выполнил запросы через интерфейс phpMyAdmin без каких-либо проблем. Этот метод позволяет легко настраивать и использовать два контейнера связанные одной сетью‚ что очень удобно для разработки и тестирования приложений.Теперь перейдем ко второй части задания – сборке собственного образа для Docker Hub. Когда мы создаем приложение‚ часто хотим поделиться им с другими разработчиками или развернуть его на других серверах. Docker Hub предоставляет отличную платформу для распространения и обмена Docker образами.Создание собственного образа очень просто – нужно всего лишь создать файл Dockerfile‚ который содержит инструкции по сборке образа. Вот пример простого Dockerfile для Node.js приложения⁚
Dockerfile
FROM node⁚14-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci —production
COPY . .CMD [ ″node″‚ ″index.js″ ]
В этом примере мы используем образ `node⁚14-alpine` в качестве базового‚ устанавливаем рабочую директорию в `/app`‚ копируем файлы `package*.json` и устанавливаем зависимости с помощью команды `npm ci —production`‚ копируем остальные файлы проекта и задаем команду для запуска приложения.Чтобы собрать образ‚ откройте терминал и перейдите в директорию с файлом Dockerfile. Затем выполните команду⁚
docker build -t my-image⁚1.0 .Флаг `-t` указывает имя и тег образа‚ а `.` указывает на текущую директорию. Docker затем выполнит инструкции из Dockerfile и соберет образ.Чтобы опубликовать образ на Docker Hub‚ следуйте следующим шагам⁚
1. Создайте аккаунт на Docker Hub‚ если у вас его еще нет.
2. Выполните вход в терминале‚ используя команду `docker login` и введите свои учетные данные Docker Hub.
3. Выполните команду `docker tag` для добавления тега к вашему образу. Например⁚
docker tag my-image⁚1.0 username/my-image:1.0
4. Загрузите образ на Docker Hub с помощью команды⁚
docker push username/my-image:1.0
Теперь ваш образ доступен на Docker Hub по ссылке `https://hub.docker.com/r/username/my-image`.
Вот и все! Теперь у вас есть подробная инструкция о том‚ как запустить два контейнера‚ связанные одной сетью‚ и получить доступ к базе данных через веб-интерфейс phpMyAdmin. Кроме того‚ вы узнали‚ как создать собственный образ и опубликовать его на Docker Hub.
Я надеюсь‚ что мой опыт и инструкции помогут вам быстро настроить окружение и собрать собственный образ для Docker Hub. Удачи в ваших проектах!