通过群集模式,容器可以部署在任何连接的节点中.我在host1上创建了一个共享的nfs文件夹作为mysql数据文件夹.
mkdir -p /nfs/data-volume
Run Code Online (Sandbox Code Playgroud)
在另一个host2中,它安装到此共享文件夹.并添加了必要的许可.我通过读取和写入一些文本文件来尝试这个nfs共享文件夹.它工作得很好.(没有权限错误)在这些nfs配置之后,我像这样定义了我的容器卷;
mysqldb-read:
image: demo/db-slave
ports:
- "3308:3306"
volumes:
- /nfs/data-volume:/var/lib/mysql
Run Code Online (Sandbox Code Playgroud)
结果是:如果mysql容器在host1上运行,效果非常好.如果mysql容器在host2上运行,则它不会启动.但是容器没有退出,线程停留在那里看起来像是在等待.通过运行check log命令:
docker logs -f mymysql
Run Code Online (Sandbox Code Playgroud)
它显示如下日志:
2017-06-07T02:40:13.627195Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-06-07T02:40:13.632313Z 0 [Note] mysqld (mysqld 5.7.18-log) starting as process 52 ...
2017-06-07T02:40:13.648010Z 0 [Note] InnoDB: PUNCH HOLE support available
2017-06-07T02:40:13.648054Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-06-07T02:40:13.648059Z 0 [Note] InnoDB: Uses event mutexes
2017-06-07T02:40:13.648062Z 0 …Run Code Online (Sandbox Code Playgroud)