一、环境准备
主机:centos7.8
工具:docker和docker-compose
二、容器mysql数据库
1、规划空间创建mysql目录。我这里直接在/下创建了
mkdir /mysql
2、mysql目录下创建一个docker-compose.yml
version: "3"
services:
mysql:
image: mysql:5.7 # 使用 mysql5.7 版本的镜像
container_name: mysql # 容器名称
restart: always # 自动重启策略
ports:
- 3306:3306 # 映射到宿主机的端口
volumes:
- ./conf.d:/etc/mysql/conf.d # 配置文件挂载的宿主机目录
- ./data:/var/lib/mysql # 数据文件挂载的宿主机目录
environment:
- MYSQL_ROOT_PASSWORD=123456 # 初始的 root 用户的密码
3、当前目录下执行
docker-compose up --build -d
发现当前目录下自动创建了data和conf.d两个目录。并且mysql容器就已经启动了。
4、创建owncloud库以及用户授权
进入mysql,执行
show databases;
create database owncloud;
create use owncloud@"%" identified by '123456';
grant all on owncloud.* to owncloud@"%";
show grants for owncloud@"%";
三、容器owncloud
1、规划空间创建owncloud目录。我这里直接在/下创建了
mkdir /owncloud
2、owncloud目录下创建一个docker-compose.yml
version: "3.1"
services:
app:
image: owncloud:10.0.10
container_name: owncloud
restart: always
ports:
- 9090:80
volumes:
- ./data:/var/www/html #/var/www/html 是owncloud默认目录,数据及配置在在里面
extra_hosts:
- "dockerhost:192.168.19.129" # 宿主机的内网IP,便于容器内访问宿主机网络。dockerhost直接可以解析为192.168.19.129
3、当前目录下执行
docker-compose up --build -d
发现当前目录下自动创建了data目录。并且owncloud容器就已经启动了。
四、初始化owncloud配置
浏览器输入
宿主机ip:9090
配置数据库选择MySQL,连接地址:dockerhost:3306
五、其他说明
所有上传的东西都存放在了/owncloud/data/data/admin/files。其中/owncloud/data/这是自己创建的目录以及与容器/var/www/html的映射。