«

Docker部署Nextcloud

myluzh 发布于 阅读:764 Docker


安装docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

配置docker国内源

阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陆后左侧菜单选中镜像加速器就可以看到你的专属地址了

vi /etc/docker/daemon.json
{ "registry-mirrors": ["https://n5gqv0vl.mirror.aliyuncs.com"]}

完成后重新启动服务:

systemctl daemon-reload
systemctl restart docker

查看源是否配置成功

docker info

部署nextcloud


# docker创建一个名为nextcloud网络
docker create network nextcloud

# 本地创建持久卷
mkdir -p /volume1/docker/nextcloud-php-data
mkdir -p /volume1/docker/nextcloud-mysql-data

# 在 Docker 环境下为 Nextcloud 配置数据目录权限时,33:33(UID:GID)是 Nextcloud 容器内 www-data 用户的默认身份(Apache/PHP 进程运行的用户)。
# Nextcloud 官方推荐数据目录权限为 750
sudo chown -R 33:33 /volume1/docker/nextcloud-php-data
sudo chmod -R 750 /volume1/docker/nextcloud-php-data
# 运行nextcloud容器
docker run -d \
  --name nextcloud-web \
  --network nextcloud \
  --restart=always \
  -v /volume1/docker/nextcloud-php-data:/var/www/html \
  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nextcloud:32.0.2-apache 

# mysql容器访问目录需要的权限
sudo chown -R 999:999 /volume1/docker/nextcloud-mysql-data
sudo chmod -R 750 /volume1/docker/nextcloud-mysql-data
# 运行mysql容器
docker run -d \
  --name nextcloud-mysql \
  --network nextcloud \
  --restart=always \
  -v /volume1/docker/nextcloud-mysql-data:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD="Aa87654321." \
  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0-debian
# 查看mysql容器logs是否正常运行
docker logs -f nextcloud-mysql
# 进入mysql容器,创建一个名为nextcloud的数据库
docker exec -it nextcloud-mysql bash
root@a6dc89b32c3c:/# mysql -u root -p
mysql> CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Query OK, 1 row affected (0.30 sec)

# 最后,进入web页面,数据库连接地址填"nextcloud-mysql",账号"root",密码"Aa87654321.",数据库名字"nextcloud",安装。

如果要使用https

本地安装nginx 反向代理到80端口即可,配置文件如下:

server {
    listen 8062 ssl;
    server_name home.itho.cn 127.0.0.1 localhost 172.16.10.10;

    if ($http_host !~* ^(172\.16\.10\.10|home\.itho\.cn)(:[0-9]+)?$) {
        return 444;
    }

    ssl_certificate /etc/nginx/conf.d/ssl/itho.cn/fullchain.pem;
    ssl_certificate_key /etc/nginx/conf.d/ssl/itho.cn/privkey.pem;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

    location / {
        proxy_pass http://172.16.10.221;
        proxy_set_header Host 172.16.10.221;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Nginx-Proxy true;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location /.well-known/carddav {
        return 301 $scheme://$host/remote.php/dav;
    }
    location /.well-known/caldav {
        return 301 $scheme://$host/remote.php/dav;
    }

    error_page 400 https://$host:8062$request_uri;
    error_page 497 https://$host:8062$request_uri;

config/config.php需要修改一下:

'overwriteprotocol' => 'https',
'overwritehost'     => 'h.itho.cn:8062',
'overwrite.cli.url' => 'https://h.itho.cn:8062',

nextcloud docker


正文到此结束
版权声明:若无特殊注明,本文皆为 Myluzh Blog 原创,转载请保留文章出处。
文章内容:https://itho.cn/docker/173.html
文章标题:《Docker部署Nextcloud