Win10为知笔记Docker镜像部署 -v /wiz/storage问题解决
用了很长一段时间的为知笔记,客户端体验还行,服务端笔记同步体验不佳。
准备用Docker自己搭一个服务端。
环境:
- 操作系统:64位 Window10 家庭版
- VirtualBox虚拟机 + DockerToolBox1.19,MSYS2环境安装的git。
问题1 文件夹映射不成功:
容器运行命令:
docker run -d -p 8080:80 -v /d/wizdata:/wiz/storage wiznote/wizserver
d盘wizdata目录没有同步生成文件。
解决:
VirtualBox default虚拟机添加共享文件夹,选择D:\wizdata,确定后重启default虚拟机。
docker-machine ssh default
ls /
可以看到,在default虚拟机根目录有/wizdata目录。
volume映射的源是default虚拟机的路径,所以启动容器的命令应修改为
docker run -d -p 8080:80 -v /wizdata/:/wiz/storage/ -p 9269:9269/udp wiznote/wizserver
问题2 服务启动异常:
运行命令:
docker-machine ssh default
telnet localhost 8080
提示连接被拒绝,8080端口服务没有启动。
经过一番排查,是mysql数据库在windows文件夹启动时需添加一个参数--innodb-use-native-aio=0
找到wizserver启动入口文件,补充对应内容
[root@f358043d49de app]# cat -n entrypoint.sh | grep "innodb-use-native-aio=0"
64 /usr/sbin/mysqld --initialize-insecure --user=root --datadir=/wiz/storage/db --innodb-use-native-aio=0
86 /usr/sbin/mysqld --user=root --innodb-use-native-aio=0 &
一番折腾(用空文件夹以-v /wizdata/empty_folder:/wiz/app启动参数隐藏原来的文件夹)后,把文件覆盖回去,再commit一下
# containerID 用实际的容器实例ID替换
docker commit -a "somebody" containerID wiz
# 杀掉所有容器实例
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
# 启动修改后的wizserver
docker run -d -p 8080:80 -v /wizdata/:/wiz/storage/ -p 9269:9269/udp wiznote/wizserver
最后,服务正常启动。
来自为知笔记(Wiz)
标签:--,为知,storage,default,wizdata,Win10,docker,wiz From: https://www.cnblogs.com/wishmo/p/17001744.html