Docker mysql:5.6在装载卷时退出,代码为141
我已经用这个图像进行了数周的批量安装,现在没有任何问题。现在突然,如果我尝试挂载一个卷,任何卷,容器都会打印一些基本的启动日志并退出 应用程序本身没有给出错误的指示,所以这似乎是docker自己在挤压东西 这就是我所拥有的: Docker版本(mac上的本机版本): 本地目录:Docker mysql:5.6在装载卷时退出,代码为141,mysql,docker,Mysql,Docker,我已经用这个图像进行了数周的批量安装,现在没有任何问题。现在突然,如果我尝试挂载一个卷,任何卷,容器都会打印一些基本的启动日志并退出 应用程序本身没有给出错误的指示,所以这似乎是docker自己在挤压东西 这就是我所拥有的: Docker版本(mac上的本机版本): 本地目录: $ ls 1 Dockerfile README.md Schema dba_utilities docker-com
$ ls
1 Dockerfile README.md Schema dba_utilities docker-compose.yml docs
启动MYSQL容器:
$ docker run -d -v $PWD/Schema:/root:ro -v $PWD/dba_utilities:/tmp:ro -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:5.6
aa213c8cb28ea2f75e3064b296db6e5e450466cc45e60a7de3f21a2ca98987f4
现在证明它死了:
$ docker ps -a | head -3
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
aa213c8cb28e mysql:5.6 "docker-entrypoint..." 23 seconds ago Exited (141) 21 seconds ago inspiring_curie
cc43d27b29cf mysql:5.6 "docker-entrypoint..." 4 minutes ago Exited (141) 4 minutes ago laughing_shaw
现在显示容器日志:
$ docker logs aa213c8cb28ea2f75e3064b296db6e5e450466cc45e60a7de3f21a2ca98987f4
Initializing database
2017-10-02 18:31:00 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-10-02 18:31:00 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
2017-10-02 18:31:00 0 [Note] /usr/sbin/mysqld (mysqld 5.6.37) starting as process 36 ...
但是,如果我试着从同一个图像中拿出一个外壳,并且具有相同的卷,所有这些看起来都很好:
$ docker run -it -v $PWD/Schema:/root:ro -v $PWD/dba_utilities:/tmp:ro -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:5.6 /bin/bash
root@898fe2f883a2:/# cd
root@898fe2f883a2:~# ls
README.md db1 db2
root@898fe2f883a2:~# ls /tmp
README.md apply.sh dump_all.sh pullschema.sh schemata.txt
root@898fe2f883a2:~# pwd
/root
root@898fe2f883a2:~# exit
现在,如果我卸下卷装载:
$ docker run -d -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:5.6
98b51f96fe482cfd0453a0eb4ff8b9d1f2729244ad2316e245680ce4976a200d
并检查状态:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
98b51f96fe48 mysql:5.6 "docker-entrypoint..." 4 seconds ago Up 3 seconds 3306/tcp nervous_mcnulty
它在跑。从日志验证:
docker logs 98b51f96fe482cfd0453a0eb4ff8b9d1f2729244ad2316e245680ce4976a200d
Initializing database
2017-10-02 18:36:48 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-10-02 18:36:48 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
2017-10-02 18:36:48 0 [Note] /usr/sbin/mysqld (mysqld 5.6.37) starting as process 36 ...
2017-10-02 18:36:53 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-10-02 18:36:53 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
2017-10-02 18:36:53 0 [Note] /usr/sbin/mysqld (mysqld 5.6.37) starting as process 59 ...
Database initialized
MySQL init process in progress...
2017-10-02 18:36:56 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-10-02 18:36:56 0 [Note] mysqld (mysqld 5.6.37) starting as process 87 ...
Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
MySQL init process done. Ready for start up.
2017-10-02 18:36:59 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-10-02 18:36:59 0 [Note] mysqld (mysqld 5.6.37) starting as process 1 ...
在过去,即使卷装载有问题,也可能会立即出错,或者我没有装载,但这不是问题
我也曾在ubuntu 14.04虚拟机上尝试过这一方法,得到了相同的结果。这里的解决方案是从挂载和env变量寻址中删除只读标志,这对我很有效,我能够在Docker 17.06.1-ce版,build 874a737上重现你的错误,所以这看起来是一个更广泛的问题,我试着省略了env变量用法和:ro标志,但都不起作用,只是在这里都不起作用
docker run -d -v Schema:/root -v dba_utils:/tmp -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:5.6
141是
SIGPIPE
,因此可能是您的操作系统在服务启动时终止了它。
docker run -d -v Schema:/root -v dba_utils:/tmp -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:5.6