Я твердо верю в необходимость поддерживать чистоту своей хост-системы. И контейнеры Docker — идеальное решение этой проблемы. Допустим, вы работаете над приложением React с серверной частью Node/Express и сервером MySQL для нужд вашей БД. Обычно вы устанавливаете mysql в своей хост-системе, создаете базу данных, создаете пользователя с паролем и предоставляете ему права на работу с этой базой данных.
Вместо того, чтобы тратить время на настройку каждый раз для каждого отдельного проекта, я просто использую образ Docker для создания своего сервера базы данных MySQL, который будет готов, запущен и запущен через несколько секунд со всеми необходимыми настройками, которые я хотел бы когда-нибудь понадобится.
Поверьте мне, как только вы выясните свой рабочий процесс, используя этот маршрут, вы никогда не вернетесь к старым путям. Итак, вот как я это делаю, очень просто и элементарно.
Если у вас есть некоторый опыт работы с Docker и вы хотите пропустить это руководство и сразу перейти к версии TLDR, этот Gist будет намного быстрее.
Чтобы использовать Docker, нам нужен Docker, да! Я не буду здесь вдаваться в подробности установки Docker. Если вам не нравится CLI или вы используете Windows/MacOS, выберите Docker Desktop, он незаметно сделает за вас всю тяжелую работу.
Пользователи Linux также могут установить Docker Engine с плагином Docker Compose или Docker Desktop, если вы этого не чувствуете.
Обычно вам не нужна учетная запись в Docker Hub для загрузки общедоступных изображений, таких как официальный образ MySQL, который мы будем использовать.
Это можно сделать двумя способами.
Чтобы иметь возможность напрямую запускать контейнер с помощью команды docker run, вам необходимо сначала загрузить образ MySQL в вашу систему. Чтобы загрузить образ в свою систему, просто используйте эту команду:
docker pull mysql
Примечание: если вам не нужна конкретная версия MySQL, эта команда загрузит самую последнюю версию (тот, у которого есть последний тег). При необходимости вы можете изучить дополнительные теги и версии в Docker Hub.
После завершения загрузки Docker вы увидите загруженное изображение следующим образом:
docker image ls
Теперь, чтобы запустить контейнер, вам нужно добавить множество флагов с помощью команды docker run. Вы можете перейти по этой ссылке, чтобы проверить все имеющиеся у вас варианты. Вам также необходимо запомнить все флаги, которые необходимо добавить, поскольку отсутствие некоторых из них может привести к возникновению ошибок или запуску неработоспособного контейнера.
Кроме того, каждый раз, когда вы захотите запустить контейнер, вам придется либо выуживать эту длинную команду из истории терминала, либо набирать ее заново. В этом нет никакого смысла.
Вот почему я НЕ РЕКОМЕНДУЮ этот подход. Есть способ получше.
Мы создадим файл Docker Compose, который сообщит Docker, что нам нужно при запуске контейнера. Как только все будет записано в файле, запуск контейнера станет проще простого.
Примечание. Вы можете создать файл компоновки с любым именем. Если вы используете свое собственное имя или храните файл создания в других папках, вам нужно будет указать флаг -f, чтобы он работал. Альтернативно, если вы запускаете команду из той же папки, что и ваш файл, вы можете назвать файл docker-compose.yaml.
Файл Docker Compose представляет собой файл YAML. Наш будет выглядеть так:
# This Docker Compose YAML deploys a MySQL database services: container-name: image: mysql # Official MySQL image from Docker Hub restart: always environment: # Note - Root password is mandatory for the container to run and grant privileges to our User. MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} # Same name as used in your project # DB User Details MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} ports: # Adjust this port as per your needs ->: - 3308:3306 # DB is available at localhost:3308 on the host. volumes: - ./volumes/db-mnt:/var/lib/mysql
Этот файл также доступен в Gist, упомянутом вначале.
Важно знать
Вы можете создать этот файл в той же папке, где находится ваш файл создания, или вы можете создать его где угодно, но вам нужно будет указать путь при вызове docker-compose.
# Content of the Environment Variables file MYSQL_ROOT_PASSWORD=rootpassword MYSQL_DATABASE=nameofdatabase MYSQL_USER=dbusername MYSQL_PASSWORD=dbuserpassword
Как только все это будет готово, мы сможем просто использовать одну небольшую команду, и наша база данных будет готова и будет ждать нас.
docker-compose up -d
Теперь вы готовы подключиться к базе данных, используя предпочитаемый вами способ.
И поскольку мы настроили наши контейнеры для запуска из файла компоновки, вы можете безопасно создать резервную копию в системе git в своем репозитории. Просто убедитесь, что вы .git игнорируете файл .env.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3