Как сохранить докер контейнер? - PullRequest
0 голосов
/ 12 июня 2018

Я создал докер-контейнер, в котором я устанавливаю mariadb-сервер и еще кое-что (см. Экран), но теперь я, конечно, хочу, чтобы контейнер работал, чтобы люди могли подключаться к серверу базы данных в контейнере.

Проблема в том, что контейнер продолжает выход после завершения работы.В последней строке экрана вы видите, что я попытался добавить хвост -f, но это также не помогло.

Это команды, которые я использую для сборки и запуска:

sudo docker build -t databaseserver .
sudo docker run -it -p 3306:3306 databaseserver

Пожалуйста, помогите мне просто сохранить его работоспособным, чтобы я мог подключиться к работающему контейнеру

Screen of Dockerfile

screen of start-up.sh

Ответы [ 5 ]

0 голосов
/ 17 июля 2019

Сделайте так, как это делает образ MySQL в библиотеке Docker:

https://github.com/docker-library/mysql/blob/3362baccb4352bcf0022014f67c1ec7e6808b8c5/8.0/Dockerfile

Последняя строка файла Docker:

CMD ["mysqld"]

Это будетпродолжайте работу контейнера (при условии, что он запускается и не останавливается по какой-либо причине) и выводите любые сообщения об ошибках в журналы.

0 голосов
/ 12 июня 2018

Поместите хвост -f / dev / null в файл Docker.

0 голосов
/ 12 июня 2018

CMD servcie mysql start в файле start-up.sh является асинхронным, mysql -u root < /honepot-project/Database/info.sql может завершиться ошибкой и завершиться.

0 голосов
/ 12 июня 2018

Вы должны переместить большую часть файла startup.sh в Dockerfile.

Затем вместо вызова service mysql start, который запускает его в «режиме демона», вы должны выяснить, как запустить его в интерактивном режиме.

Тогда вам не нужно было бы привязывать журналы, чтобы предотвратить закрытие контейнера.

В этот момент вы можете вызывать Docker в режиме демона или в интерактивном режиме (на ваш выбор), и он должен просто работать правильно.

0 голосов
/ 12 июня 2018

Возможно, вам следует попробовать запустить контейнер в режиме демона, а не в интерактивном режиме.

Итак, ваша команда должна быть:

sudo docker run -d -p 3306: 3306 databaseserver

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...