2015-02-21 6 views
1

Мне нужна помощь с использованием MySQL в контейнере Docker. Я думал, что все дело Докера состояло в том, чтобы изолировать процессы в песочницах и заставить их работать как обычные процессы - я не получаю эту функциональность.Docker - контейнер MySQL не работает

Всякий раз, когда я запускаю контейнер MySQL, который я создал из собственного изображения, он работает в течение 2 секунд, а затем останавливается. Попытка docker run -i -t <imageid> дает мне это:

[email protected]:/home/centurionx/Code/Git/gdms-rcon# docker run -i -t e2d 
150221 05:25:21 mysqld_safe Logging to '/var/lib/mysql/28123b6d1dad.err'. 
150221 05:25:21 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 
150221 05:25:21 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 
[email protected]:/home/centurionx/Code/Git/gdms-rcon# 

Почему демон не оставаться открытым? У меня есть Dockerfile, который выглядит следующим образом:

# This docker file constructs a MySQL database instance 
FROM mysql:latest 

ADD . /gdms-rcon/mysql 
WORKDIR /gdms-rcon/mysql 

ENTRYPOINT ["/usr/bin/mysqld_safe"] 

EXPOSE 3306 

И fig.yml файл, чтобы помочь мне автоматизировать процесс сборки:

mysql: 
    build: . 
    volumes: 
    - .:/gdms-rcon/mysql 
    working_dir: /gdms-rcon/mysql 
    ports: 
    - "3306:3306" 
    environment: 
    - MYSQL_DATABASE=mydb 
    - MYSQL_ROOT_PASSWORD=mypassword 

ответ

4

mysql official image имеют /entrypoint.sh скрипт, который необходим для запуска при запуске изображения чтобы правильно настроить и запустить контейнер. Кажется, что запуск /usr/bin/mysqld_safe вместо этого неправильно настроен mysql, и процесс mysqld_safe заканчивается, поэтому контейнер также заканчивается.

Попробуйте заменить ENTRYPOINT:

# This docker file constructs a MySQL database instance 
FROM mysql:latest 

ADD . /gdms-rcon/mysql 
WORKDIR /gdms-rcon/mysql 

ENTRYPOINT ["/entrypoint.sh"] 

EXPOSE 3306 
Смежные вопросы