Docker容器部署discuz论坛与线上商城
准备
关闭防火墙,上下文
[root@docker ~]# systemctl disable --now firewalld[root@docker ~]# setenforce 0
下载应用
yum remove runc -y ### rocky8才需要yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce
添加加速网站
[root@docker ~]# vim /etc/docker/daemon.json[root@docker ~]# systemctl daemon-reload
[root@docker ~]# systemctl restart docker
创建专用网络
[root@docker ~]# docker network create --driver bridge --subnet 192.168.200.0/24 ipip
部署discuz论坛
下载
下载镜像
配置文件
创建目录
配置 php
编写Dockerfile文件
编写配置文件
(可先做php容器后再写,复制粘贴,再重启)
创建 php镜像
[root@docker php]# docker build -t alpine:php .
生成php容器
[root@docker php]# docker run -itd --name php --network ipip -v /root/discuz/php/conf.d:/etc/php83/php-fpm.d -v /root/discuz/discuz:/var/www/discuz alpine:php
配置nginx
编写Dockerfile文件
启动文件
编写配置文件
创建nginx镜像
[root@docker nginx]# docker build -t alpine:nginx .
生成nginx容器
[root@docker nginx]# docker run -itd -v /root/discuz/nginx/conf.d/:/etc/nginx/http.d/ -v /root/discuz/discuz:/var/www/discuz/ -v /root/discuz/nginx/logs:/var/log/nginx --name=nginx --network ipip -p 80:80 alpine:nginx
查看IP
[root@docker nginx]# docker inspect ac
创建测试文件
正常解析
配置mysql
编写配置文件
创建Dockerfile文件
创建mysql用户文件
创建 mysql镜像
生成mysql容器
[root@docker mysql]# docker run -itd --name=mysql --network ipip -v /root/discuz/mysql/data:/var/lib/mysql -v /root/discuz/mysql/conf.d/mysql.conf:/etc/mysql/conf.d/mysql.conf -v /root/discuz/mysql/init.sql:/docker-entrypoint-initdb.d/init.sql -e MYSQL_ROOT_PASSWORD=123.com mysql:mysql
测试
在访问目录下创建测试文件
正常访问
导入discuz论坛
更改所有者
访问
完成
(加 /upload/ 才能访问)
更改默认访问路径
部署 线上商城
创建存放目录
将线上商城应用放在 shangcheng目录下
下载镜像
生成测试容器
[root@docker tomcat]# docker run -itd --name tomcat --network ipip -v /root/tomcat/shangcheng/:/usr/local/tomcat/webapps/ --restart=always tomcat:8
复制server.xml
将配置文件复制到宿主机中
删除测试容器
移动文件
将线上商城下的 .sql 文件 移动 到 之前mysql挂载的 目录里 ( /root/discuz/mysql/data/ )
[root@docker tomcat]# ls
conf.d logs shangcheng
[root@docker tomcat]# cd shangcheng/
[root@docker shangcheng]# cd biyesheji/
[root@docker biyesheji]# ls
注意事项 biyesheji.sql favicon.ico images.zip js META-INF WEB-INF
assets css images index.jsp lib static
[root@docker biyesheji]# mv biyesheji.sql /root/discuz/mysql/data/
msyql
mysql> create database biyesheji;
Query OK, 1 row affected (0.055 sec)mysql> create user 'tomcat'@'%' identified by '123.com';
Query OK, 0 rows affected (0.111 sec)mysql> grant all on biyesheji.* to 'tomcat'@'%';
Query OK, 0 rows affected (0.006 sec)mysql> exit
Bye
注入数据
bash-5.1# mv /var/lib/mysql/biyesheji.sql ./
bash-5.1# ls
afs boot etc lib64 opt run sys var
bin dev home media proc sbin tmp
biyesheji.sql docker-entrypoint-initdb.d lib mnt root srv usr
bash-5.1# mysql -uroot -p'123.com' biyesheji < ./biyesheji.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
修改商层配置文件
[root@docker tomcat]# cd shangcheng/
[root@docker shangcheng]# cd biyesheji/
[root@docker biyesheji]# ls
注意事项 css images index.jsp lib static
assets favicon.ico images.zip js META-INF WEB-INF
[root@docker biyesheji]# vim index.jsp
[root@docker tomcat]# cd shangcheng/biyesheji/WEB-INF/classes/
[root@docker classes]# vim jdbc.properties
生成tomcat容器
[root@docker tomcat]# rm -rf logs/*
[root@docker tomcat]# docker run -itd --name tomcat --network ipip -p 8080:8080 -v /root/tomcat/shangcheng/:/usr/local/tomcat/webapps/ -v /root/tomcat/conf.d/server.xml:/usr/local/tomcat/conf/server.xml -v /root/tomcat/log/:/usr/local/tomcat/logs/ --restart=always tomcat:8
查看IP
[root@docker classes]# docker inspect 5e
访问成功
[root@docker ~ ]# curl 192.168.200.5:8080/biyesheji/fore/foreIndex/
[root@docker ~ ]# curl 192.168.11.82:8080/biyesheji/fore/foreIndex/