使用docker安装nextcloud
记录在CentOS 8中使用docker安装nextcloud的教程
安装步骤
在CentOS 8中安装docker
- 更新系统
yum update #更新系统
yum install wget #安装wget
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
yum makecache
- 安装docker
yum install -y yum-utils device-mapper-persistent-data lvm2 #安装需要的软件包
设置yum源(选择其中一个)
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo #中央仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #阿里仓库
查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
安装Docker,命令:yum install docker-ce-版本号,例如docker-ce-18.03.1.ce
yum install docker-ce-20.10.9-3.el8
启动Docker,命令:systemctl start docker,然后加入开机启动,如下
systemctl start docker
systemctl enable docker
安装docker网络
创建一个名字叫 my-net 的网络
docker network create -d bridge my-net
查询已经存在的网络
docker network ls
在docker中安装nextcloud
取最新版的 nextcloud镜像
docker pull nextcloud
使用docker安装nextcloud
安装教程参考官网教程(https://hub.docker.com/_/nextcloud)
运行nextcloud镜像
命令参数说明:
run: 与前面的 docker 组合来运行一个容器
-d:指定容器的运行模式(后台模式)
–network my-net:加入已经网络
–name nextcloud:指定容器的名字
-v nextcloud:/var/www/html:运行的目录
-p 10001:80:指定的端口
nextcloud的目录在宿主机的/var/lib/docker/volumes 目录下面可以查看
docker run -d -p 10001:80 -v nextcloud:/var/www/html --network my-net --name nextcloud nextcloud
我们在防火墙放行nextcloud运行的端口
firewall-cmd --zone=public --add-port=10001/tcp --permanent #放行端口
firewall-cmd --reload #重新加载
firewall-cmd --zone=public --list-ports #查看已经放行的端口
nextcloud已经安装完成通过 http://ip:10001可以访问
在docker中安装mysql
取最新版的 mysql镜像
docker pull mysql:latest
运行容器,数据库密码可以按情况设置
docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --network my-net mysql
添加对应的数据库和用户
docker exec -it mysql /bin/bash #登录到容器
mysql -uroot -p123456 #登录到MySQL
添加用户和数据库
create database nextcloud; #创建数据库
验证网络是否加入成功
使用docker登录到nextcloud容器
docker exec -it nextcloud /bin/bash
安装ping 工具包
apt-get update
apt install iputils-ping
检测网络,ping成功表示网络添加成功
ping mysql
打开网站配置nextcloud ,数据库的主机地址可以添加mysql
安装nginx,使用https
安装nginx,通过http://ip
docker run -itd --name nginx -p 80:80 -p 443:443 --network my-net nginx
登录nginx容器,检测网络,能供ping通
docker exec -it nginx /bin/bash
apt-get update
apt install iputils-ping
apt install vim
添加配置文件
vim /etc/nginx/conf.d/cloud.abc.com.conf
添加一下内容,域名需要做对应的修改,改成自己的域名
server{
listen 80;
server_name cloud.abc.com;
location / {
proxy_pass http://nextcloud;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 120s;
proxy_send_timeout 120s;
proxy_read_timeout 120s;
}
}
测试配置文件
重启nginx
exit
docker stop nginx
docker start nginx
docker ps -as
将域名添加对应的解析,如果没用域名可以使用添加hosts记录