前提:
centos系统装好的,默认装的.有足够大的/home盘,
默认docker安装是在系统盘,只有几十G,自用问题不大,多人用有点问题,太小了。因为我https折腾了很久,再重装也记不清了,看了网上几种方法,移动整个docker,导致我docker启动不了。想了下,把挂在数据部分改了就行了。这样至少不用去解决docker的问题。
(更新:软链接那个步骤只用复制文件夹,不用建立软链接了,也就是&& ln -s /home/nextclouddata /var/lib/docker/volumes/nextcloud这个命令不需要了)
1\先停止docker服务
systemcel stop docker
2
mv /var/lib/docker/volumes/nextcloud /home/nextclouddata && ln -s /home/nextclouddata /var/lib/docker/volumes/nextcloud
解释下:
mv /var/lib/docker/volumes/nextcloud /home/nextclouddata
(用MV主要是为了权限不出问题)
默认安装的nextcloud里面的全部数据(实际就是_data里面的所有文件)移动到/home/nextclouddata(这个目录不用先去见文件夹,直接生成)
ln -s /home/nextclouddata /var/lib/docker/volumes/nextcloud
做个软连接,系统调用访问/var/lib/docker/volumes/nextcloud的时候,自动连接到新创建的/home/nextclouddata
3.启动docker服务,启动具体的容器。
systemctl start docker
docker start XXXXX(你的具体容器,先起数据库,再启nextcloud.
以上纯属笨办法。
追加。设备重启后,nextcloud没有自动启动,手都报错。但是在通过初始化nextcloud又正常。
过程,删docker ps -l查看启动失败的docker id.然后docker rm XXXXX.
再重新运行一遍 挂在数据和数据库,一切正常。
就是
docker run -d --name nextcloud \
> -v nextcloud:/var/www/html \
> --link mysql:mysql \
> -p 8080:80 nextcloud
(更新:上面这个不用了,用下面那个)
目前还不知道原因,呵呵,哪位大神能指点一下。
更新内容
以上是之前重启就导致docker nextcloud的容器起不来。我就没有用软链接的方式了,直接把-v挂在对应的目录。因为上文的MV保持了权限有效,所以直接挂在目标数据就行。其中
-v /home/nextclouddata/_data:/var/www/html \ 的意思就是把目标/home/nextclouddata/_data的内容挂在到容器里的/var/www/html位置,也就是我们的数据。
启动容器的第一次配置如下即可。(
docker run -d --name nextcloud \
-v /home/nextclouddata/_data:/var/www/html \
--link mysql:mysql \
-p 8080:80 nextcloud
重启后容器自动启动木有问题。解决~~~