準備?
關閉防火墻,上下文
[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/