设置反向代理(这里应该映射到本机端口或者使用socket,因为docker与宿主机是可以通信的,用了docker container的ip测试)⑤
* 反向代理可以直接使用127.0.0.1,这时docker容器需要绑定到宿主机端口
* 反向代理可以使用docker container 的ip (容器桥接且暴露端口)
* 反向代理可以使用套接字(性能应该是最好的)
启动测试
cd /usr/local/nginx sudo ./nginx 2、SSL签名免费CA网站
具体请参考网站说明
另外,csr证书有效期90天,需要定期续签
注意:
-w /var/www/html 是项目路径,与配置相同,certbot会在这个路径上创建一个.well-known路径以便认证CA访问来确定网站拥有权
-d 域名,一定是可达的,否则不成功提示dns问题
签署成功
签署成功提示信息
签署成功后要把fullchain.pem文件和privkey.pem配置到nginx里(参考nginx配置文件的②和③)
启动测试
cd /usr/local/nginx sudo ./nginx -s reload 3、编排nextcloud 安装docker-compose参考:
docker-compose安装地址
nextcloud镜像地址
国内用户建议使用迅雷等工具从github.com下载docker-compose
使用compose进行编排 version: '2' services: nextcloud: image: wonderfall/nextcloud links: - nextcloud-db:nextcloud-db # If using MySQL #- solr:solr # If using Nextant - redis:redis # If using Redis environment: - UID=1000 - GID=1000 - UPLOAD_MAX_SIZE=10G - APC_SHM_SIZE=128M - OPCACHE_MEM_SIZE=128 - CRON_PERIOD=15m - TZ=Europe/Berlin - ADMIN_USER=admin # Don't set to configure through browser - ADMIN_PASSWORD=admin # Don't set to configure through browser - DOMAIN=laurt.com - DB_TYPE=mysql - DB_NAME=nextcloud - DB_USER=nextcloud - DB_PASSWORD=supersecretpassword - DB_HOST=nextcloud-db volumes: - /mnt/nextcloud/data:/data - /mnt/nextcloud/config:/config - /mnt/nextcloud/apps:/apps2 - /mnt/nextcloud/themes:/nextcloud/themes expose: - 8888 # ports: # - 80:8888 # If using MySQL nextcloud-db: image: mariadb:10 volumes: - /mnt/nextcloud/db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=supersecretpassword - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD=supersecretpassword # If using Nextant solr: image: solr:6-alpine container_name: solr volumes: - /mnt/nextcloud/solr:/opt/solr/server/solr/mycores entrypoint: - docker-entrypoint.sh - solr-precreate - nextant # If using Redis redis: image: redis:alpine container_name: redis volumes: - /mnt/nextcloud/redis:/data这里使用作者的镜像进行的,具体细节请参考原作者的说明
https://store.docker.com/community/images/wonderfall/nextcloud
https://github.com/Wonderfall/dockerfiles/tree/master/nextcloud
需要说明的是,我nextcloud容器暴露了8888端口,并没有映射到宿主机,这时外部是无法进行访问,一般的做法是端口映射或者使用socket
因为docker容器与宿主机可以通过docker0通信ip addr show docker0,其实宿主机是可以直接访问容器的(从宿主机到172.17.0.1到172.18.0.1到容器的172.18.0.5),但这么做不利于部署和迁移。
运行
与docker-compose.yml同级目录执行
使用docker-compose启动nextcloud
查看
安装桌面客户端
如果使用nextcloud的桌面client配置始终出错,我不确定原因出在哪