开启Linux子系统功能,在Windows商店下载安装Ubuntu 18.04 LTS

打开cmd,查看wsl版本

  wsl -l -v

更改版本为 wsl 2

  wsl --set-version Ubuntu-18.04 2

提示需要更新内核组件,访问 https://aka.ms/wsl2kernel,下载安装Linux kernel update后重新执行上述命令。

 

 

在Windows 10上安装Docker Desktop

 本机为Windows 10家庭版,参考 https://docs.docker.com/docker-for-windows/install-windows-home/,在docker hub下载安装包并安装。

 

 

 

配置Docker Desktop

如果是标准用户,管理员身份安装docker desktop之后,可能作为标准用户无法启动,报错提示必须在 docker-users group 中,参考

https://docs.microsoft.com/en-us/visualstudio/containers/troubleshooting-docker-errors?view=vs-2019#:~:text=You%20must%20be%20a%20member%20of%20the%20'docker-users',Expand%20Local%20Users%20and%20Groups,%20and%20choose%20Groups.

在计算机管理将用户添加到docker-users组中,家庭版没有“本地用户和组”这个选项,因此只能把标准用户提升为管理员,或者升级到专业版,专业版系统中docker desktop还可以与hyper-v集成。

 参考

https://docs.microsoft.com/en-us/windows/wsl/tutorials/wsl-containers

配置wsl 2为后端引擎,启用与已安装的Linux分发版本集成。

 

 

 

在Ubuntu wsl上docker安装seafile

参考seafile服务器手册,下载docker-compose.yml,根据自己情况修改,本次未作修改。

打开Ubuntu wsl,把yml文件保存到子系统目录。在yml所在目录下,输入以下命令启动seafile服务:

  docker-compose up -d

需要确定80端口未被占用,否则失败:

ERROR: for seafile Cannot start service seafile: driver failed programming external connectivity on endpoint seafile (b6ad93342001174bb2b92240782fb5585a7cdcf951b86d2a745fb4154cd1a1ea): Bind for 0.0.0.0:80 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.

之后打开docker desktop,可以发现多了镜像和容器。

kdesvn 安装_kdesvn 安装

 test是在wsl中创建的标准用户,上述命令也是在用test用户身份登录时输入的,可以发现 wsl 2结合 docker desktop,不需要必须是root才能用docker命令,而且可以直观地用图形界面管理镜像和容器。

也可以在wsl中用docker images 命令查看镜像。

 

 

打开seafile验证

在docker desktop中浏览器打开seafile,出现登录界面,可以按照seafile服务器手册以管理员身份登录,进一步配置。实际使用发现存在问题,网络错误,无法进行上传和下载,暂时还无法解决。

 

 

安装nextcloud

在powershell中

  docker pull nextcloud

  docker run -d -p 8080:80 nextcloud

安装nextcloud后可以上传下载,但是没有共享文件夹的方法,每个用户有自己的单独空间,只能单开一个账号专门用来共享。

 

 

 

总结

docker desktop加wsl 2的方式容易上手,但是还要考虑以下问题。

  实机部署往往是纯Linux环境,更加复杂。

  docker和下面容器的设置还需要以后深入研究,比如seafile多机联网,自定义用户数据库和文件存储路径,以及实际传输文件的性能。