第一步:安装docker
此步骤略
第二步:docker pull mysql:5 //我拉取的是mysql5 的版本镜像 可以用docker search mysql 来查找镜像
第三步:docker pull nextcloud //拉取nextcloud镜像
第四步:创建Mysql容器
docker run --name=nextcloud_db -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5
第五步:进入到mysql容器内部,创建新数据库,创建用于nextcloud的用户、授权。(用ROOT用户登陆nextcloud可能连接不成功)
docker exec -it nextcloud_db mysql -u root -p
passwd:123456
CREATE DATABASE nextcloud; //创建新数据库
CREATE USER 'username'@'host' IDENTIFIED BY 'password'; //创建新用户
说明:
- username:你将创建的用户名
- host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符
%
- password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
GRANT privileges ON databasename.tablename TO 'username'@'host'
说明:
- privileges:用户的操作权限,如
SELECT
,INSERT
,UPDATE
等,如果要授予所的权限则使用ALL
- databasename:数据库名
- tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用
*
表示,如*.*
添加 WITH GRANT OPTION; 可以让改用户给其他用户授权。
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword'); //设置用户名密码
第六步:docker run --name=nextcloud --link nextcloud_db:db -p 81:80 -d nextcloud //启动nextcloud 连接mysql容器
第七步:网页操作 操作地址 : http://192.168.x.x:81
第八步:输入要设置的nextcloud用户、密码。数据库连接选择 mysql 。用户选择刚刚创建授权的用户,密码,数据库连接填写nextcloud 连接的mysql 别名 db 即可
第九步:以上操作已经将nextcloud内部 80 端口映射到了主机的 81 端口 Mysql数据库端口 3306 需要在主机上将用到的端口开启
centos 开启端口方法 :firewall-cmd --zone=public --add-port=22123/tcp --permanent # 开放22123端口
注:以上mysql的用户操作参考 https://www.cnblogs.com/sos-blue/p/6852945.html 我认为他写的很详细,可以参考