2015-09-24 72 views
0

我在嘗試運行裝有主機上的數據卷的mysql容器時遇到問題。Docker的mysql容器不能使用啓動時定義的數據卷

這裏是一個dockerfile:

from ubuntu:14.04 
maintainer Tiago Pires, [email protected] 

# Because docker replaces /sbin/init: https://github.com/dotcloud/docker/issues/1024 
RUN dpkg-divert --local --rename --add /sbin/initctl 

RUN echo "deb http://archive.ubuntu.com/ubuntu trusty main universe" > /etc/apt/sources.list 
RUN apt-get update && apt-get upgrade -y 

ADD create_database.sql /tmp/create_database.sql 

RUN apt-get install -y mysql-server 

RUN sed -i -e"s/^bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/" /etc/mysql/my.cnf 

RUN /usr/bin/mysqld_safe & \ 
    sleep 10s && \ 
     mysql -u root < /tmp/create_database.sql 

VOLUME ["/var/lib/mysql", "/var/log/mysql"] 

CMD ["mysqld_safe"] 

我建立併成功運行。 容器在docker主目錄中創建了一個卷,並且存在所有必需的mysql數據。

ls -l /var/lib/docker/vfs/dir/262aa2622c54f3a5d28ea9c1b90e6f67c93309f73921c724354a0e0155af2f0f 
total 28684 
-rw-r--r-- 1 root  root    0 Jun 1 14:12 debian-5.5.flag 
-rw-rw---- 1 messagebus messagebus 18874368 Jun 1 14:12 ibdata1 
-rw-rw---- 1 messagebus messagebus 5242880 Sep 23 18:44 ib_logfile0 
-rw-rw---- 1 messagebus messagebus 5242880 Jun 1 14:12 ib_logfile1 
drwx------ 2 messagebus root   4096 Jun 1 14:12 mysql 
drwx------ 2 messagebus messagebus  4096 Jun 1 14:12 performance_schema 
drwx------ 2 messagebus messagebus  4096 Jun 1 14:12 sonar 

現在我想顯式地定義一個文件夾來裝載數據卷。

docker run -d -p 3306:3306 \ 
     -v $HOME/data:/var/lib/mysql \ 
     -v $HOME/log:/var/log/mysql \ 
     --name=sonar-sql sonar-sql 

但是這一次我有一個錯誤:

150924 7:59:07 InnoDB: Operating system error number 13 in a file operation. 
InnoDB: The error means mysqld does not have the access rights to 
InnoDB: the directory. 
InnoDB: File name ./ibdata1 
InnoDB: File operation call: 'create'. 
InnoDB: Cannot continue operation. 

我看到數據文件夾已創建。我試圖改變權限,然後再次運行еру容器:

chmod a+wrX data 

這一次,我有另外一個錯誤:數據文件夾的

150924 8:02:20 InnoDB: Completed initialization of buffer pool 
InnoDB: The first specified data file ./ibdata1 did not exist: 
InnoDB: a new database to be created! 
150924 8:02:20 InnoDB: Setting file ./ibdata1 size to 10 MB 
InnoDB: Database physically writes the file full: wait... 
150924 8:02:20 InnoDB: Log file ./ib_logfile0 did not exist: new to be created 
InnoDB: Setting log file ./ib_logfile0 size to 5 MB 
InnoDB: Database physically writes the file full: wait... 
150924 8:02:21 InnoDB: Log file ./ib_logfile1 did not exist: new to be created 
InnoDB: Setting log file ./ib_logfile1 size to 5 MB 
InnoDB: Database physically writes the file full: wait... 
InnoDB: Doublewrite buffer not found: creating new 
InnoDB: Doublewrite buffer created 
InnoDB: 127 rollback segment(s) active. 
InnoDB: Creating foreign key constraint system tables 
InnoDB: Foreign key constraint system tables created 
150924 8:02:21 InnoDB: Waiting for the background threads to start 
150924 8:02:22 InnoDB: 5.5.35 started; log sequence number 0 
150924 8:02:22 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306 
150924 8:02:22 [Note] - '0.0.0.0' resolves to '0.0.0.0'; 
150924 8:02:22 [Note] Server socket created on IP: '0.0.0.0'. 
150924 8:02:22 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist 
150924 08:02:22 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 

內容,現在下面的(一些必要的文件不存在):

ls -l  
-rw-rw---- 1 messagebus messagebus 18874368 Sep 24 11:02 ibdata1 
-rw-rw---- 1 messagebus messagebus 5242880 Sep 24 11:02 ib_logfile0 
-rw-rw---- 1 messagebus messagebus 5242880 Sep 24 11:02 ib_logfile1 

Mysql進程是從容器內的mysql用戶運行的,這個用戶在主機上不存在。

ps aux 
USER  PID %CPU %MEM VSZ RSS TTY  STAT START TIME COMMAND 
root   1 0.4 0.0 4440 776 ?  Ss 08:07 0:00 /bin/sh /usr/bin/mysqld_safe 
mysql  352 1.0 0.7 492520 55636 ?  Sl 08:07 0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mys 
root  370 1.0 0.0 18136 1860 ?  Ss 08:08 0:00 bash 
root  385 0.0 0.0 15564 1140 ?  R+ 08:08 0:00 ps aux 

問:泊塢文件說,該卷的命令和-v選項都應該做同樣的,請給我解釋一下爲什麼我有音量OK,但與「-v」失敗。

的Ubuntu 14.04.2 LTS 泊塢1.6.0版本,構建4749651

回答

相關問題