目录
前提环境
拉取镜像
创建容器
创建mysql容器:
创建OwnCloud容器,并连接到数据库:
创建Nginx容器:
配置nignx
前提环境
- 基于Centos7.9版本环境安装Docker-ce:24.0.5
拉取镜像
docker pull mysql:5.6
docker pull owncloud
docker pull nginx
[root@node4 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 19 months ago 141MB
mysql 5.6 dd3b2a5dcb48 20 months ago 303MB
owncloud latest 327bd201c5fb 4 years ago 618MB
- 但是值得注意的是OwnCloud自带有Web功能,所以不使用Nginx一样是可行的!
- 如果你想要添加SSL实现保密传输,那可能就需要一些Web中间件协同了。
创建容器
创建mysql容器:
docker run -d --name dbs -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456.! -e MYSQL_DATABASE=owncloud -e MYSQL_USER=owncloud -e MYSQL_PASSWORD=owncloud mysql:5.6
#-e MYSQL_ROOT_PASSWORD=123456.! 是root密码
#-e MYSQL_DATABASE=owncloud 存放网盘文件数据的数据库名
#-e MYSQL_USER=owncloud -e MYSQL_PASSWORD=owncloud 创建待会网盘访问的用户和密码
进入到自己创建的mysql容器里面查看创建的数据库
[root@node4 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
657abfc7aa3b mysql:5.6 "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 0.0.0.0:3307->3306/tcp, :::3307->3306/tcp dbs
[root@node4 ~]# docker exec -it dbs /bin/sh
#
# mysql -uroot -p
创建OwnCloud容器,并连接到数据库:
docker run -d --name owncloud --link dbs:mysql -e MYSQL_HOST=mysql -e
MYSQL_DATABASE=owncloud -e MYSQL_USER=owncloud -e MYSQL_PASSWORD=owncloud owncloud:latest
#--link dbs:mysql 链接到dbs数据库,别名mysql
#-e MYSQL_HOST=mysql 数据库主机名:mysql
#剩余:数据库用户、用户密码、数据库名
创建Nginx容器:
docker run -d --name nginx --link owncloud:owncloud --link dbs:mysql -p 80:80 nginx:latest
#--link 同样链接到前两个容器
#-p 暴露端口 ;-P随机端口
docker ps 查看
[root@node4 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d27a14421026 nginx:latest "/docker-entrypoint.…" 19 minutes ago Up 19 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp nginx
7684576b7bda owncloud:latest "docker-entrypoint.s…" 21 minutes ago Up 21 minutes 80/tcp owncloud
657abfc7aa3b mysql:5.6 "docker-entrypoint.s…" 2 hours ago Up 2 hours 0.0.0.0:3307->3306/tcp, :::3307->3306/tcp dbs
配置nignx
[root@node4 ~]# vim /root/default.conf
server{
location / {
proxy_pass http://owncloud:80;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
[root@node4 ~]# docker cp /root/default.conf nginx:/etc/nginx/conf.d/default.conf
Successfully copied 2.05kB to nginx:/etc/nginx/conf.d/default.conf