В прошлой статье мы рассмотрели настройку docker для работы с под Windows. В этой пойдет речь о создании docker-образов c нуля.
Перейдите в папку либо создайте новую, из которой вы будете собирать докер-образ. Создадим в ней Dockerfile:
echo > Dockerfile
Запишем в него следующее содержимое:
FROM ubuntu LABEL maintainer="author@mail.ru" ENV ADMIN="admin" RUN apt update COPY . ./app RUN ["mkdir", "/test_directory"]
И вводим в консоли команду
docker build . --tag myimage
Теперь вы его можете увидеть через команду
docker images
запускать ее по имени и если пожелаете удалить его из докера командой:
docker rmi
Теперь немного усовершенствуем наш образ. Допустим, мы хотим, чтобы он сразу же был с предустановленным MySQL. Для этого добавим в RUN команду apt install mysql-server mysql-client
(все необходимые пакеты для образа ставятся в команду RUN, поскольку она фиксирует состояние образа):
FROM ubuntu LABEL maintainer="author@mail.ru" ENV ADMIN="admin" RUN apt update && apt install mysql-server mysql-client -y COPY . ./app RUN ["mkdir", "/test_directory"]
и выполним docker build . --tag mysql
Что ж мы получим в итоге. Запустим получившийся образ через docker run -it mysql
. В появившемся терминале запустим службу mysql (в дальнейшем эту команду стоит добавить в CMD докерфайла):
service mysql start
далее можно запустить настройки:
mysql_secure_installation
чтобы задать пароль для администратора и другие настройки безопасности либо пропустить этот шаг и начать работу с бд непосредственно через cli:
mysql
либо
mysql -u root -p
вывод в моем терминале на этом этапе выглядел вот так:
Хорошо, мы запустили mysql в докере. Но это еще не все.
Во первых, нам надо, чтобы службы стартовала вместе с контейнером. Во-вторых, нам нужно открыть порт, по которому можно работать с mysql. Сделаем это:
FROM ubuntu LABEL maintainer="author@mail.ru" ENV ADMIN="admin" RUN apt update && apt install mysql-server mysql-client -y COPY . ./app ENTRYPOINT service mysql start; # CMD service mysql start; bash # Expose our port to the world EXPOSE 3306
Полезные ссылки: докер, mysql, мускул, dockerfile mysql, проброс портов, о докер-образе mysql,
от 2 комментария
Это статья рассчитана для обучения. Если вам нужен mysql образ doсker с сохранением данных между перезагрузками, то я рекомендую воспользоваться официальным образом докер, поскольку его настройка не так проста и меняется в зависимости от версии к версии MySQL
Вот несколько ссылок на инструкции для размышления:
— https://medium.com/@Volirik/%D0%BA%D0%B0%D0%BA-%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D0%BD%D1%83%D1%82%D1%8C-%D0%B8-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-docker-%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80-%D1%81-mysql-e3782e7cca53 (nope)
— https://rodionoff.space/all/mysql8-in-docker/ (-//-)
полезная ссылка https://zen.yandex.ru/media/id/5aec7861a936f461d51250be/mysql-v-konteinere-docker-chast-i-5b0553baf03173c597c287a0