Docker续5:docker部署nmt(mysql,nginx,tomcat)

1.前端(nginx)

root@localhost \~# docker pull nginx //拉取nginx镜像

root@localhost \~# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

nginx latest 5ef79149e0ec 2 weeks ago 188MB

root@localhost \~# docker run -itd -p80:80 nginx:latest //创建nginx容器在后台运行

root@localhost \~# docker exec d18c ls /usr/share/nginx/html

50x.html

index.html

root@localhost \~# mkdir project_exam_system

root@localhost \~# cd project_exam_system/

root@localhost project_exam_system# mkdir web

root@localhost web# ls //上传自己的前端项目

dist

root@localhost web# docker run -itd -p80:80 -v /root/project_exam_system/web/dist/:/usr/share/nginx/html nginx:latest

3035a713b57eaef83c979c7a4e04416d309cc52a3e5b61933bd3e058d951152b

浏览器访问本机ip

做个hosts域名劫持,就暂时不做dns了

windows系统在这个目录下:"C:\Windows\System32\drivers\etc\hosts"

添加下面这一行内容

192.168.1.80 bu.yuanyu.zhangmin

2.部署后端业务jdk

上传项目的其他部分以及jdk17

root@localhost \~# ls

anaconda-ks.cfg harbor-offline-installer-v2.11.1.tgz project_exam_system.sql

application.properties jdk-17_linux-x64_bin.tar.gz Project_ExamSystem-V1.0.0.war

docker.sh project_exam_system

root@localhost \~# docker pull centos //拉取

root@localhost \~# docker run -itd centos:latest //创建容器

aa6a96f74ed438bfe561bd9b7aed494a46bb2a189edff44573171dd2215a6738

root@localhost \~# docker cp jdk-17_linux-x64_bin.tar.gz aa6a:/ //把准备好的jdk17包传进容器中

Successfully copied 183MB to aa6a:/

root@localhost \~# docker cp application.properties aa6a:/ //把项目的其他部分上传到该容器中

Successfully copied 4.1kB to aa6a:/

root@localhost \~# docker cp Project_ExamSystem-V1.0.0.war aa6a:/

Successfully copied 41MB to aa6a:/

root@localhost \~# docker attach aa6a

root@aa6a96f74ed4 /# ls

Project_ExamSystem-V1.0.0.war dev jdk-17_linux-x64_bin.tar.gz lost+found opt run sys var

application.properties etc lib media proc sbin tmp

bin home lib64 mnt root srv usr

root@aa6a96f74ed4 /# mkdir /usr/local/jdk

root@aa6a96f74ed4 /# tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /usr/local/jdk/ --strip-components=1

root@aa6a96f74ed4 /# ls /usr/local/jdk

LICENSE README bin conf include jmods legal lib man release

root@aa6a96f74ed4 /# vi application.properties //修改application.properties文件

root@aa6a96f74ed4 /# /usr/local/jdk/bin/java -jar Project_ExamSystem-V1.0.0.war //启动服务

ctrl+p+q退出

root@localhost \~# curl 172.17.0.3:8080 //访问

{"code":20002,"msg":"账号不存在或密码错误"}root@localhost \~# //这样代表部署成功

root@localhost \~# docker commit aa6a java:v0 //使用docker commit将容器做成镜像,至于为什么不用export和import,Docker续2中有写

sha256:46529fd5a4b2cf6affb2cd559987423a29f533c2e6d42bd3f3739dc641ac7cfa

root@localhost \~# docker images //查看

REPOSITORY TAG IMAGE ID CREATED SIZE

java v0 46529fd5a4b2 44 seconds ago 774MB

nginx latest 5ef79149e0ec 2 weeks ago 188MB

centos latest 5d0da3dc9764 2 years ago 231MB

root@localhost \~# docker stop aa6a //停止刚才创建的容器

aa6a

root@localhost \~# docker rm aa6a //删除

aa6a

root@localhost \~# docker run -itd -p8080:8080 java:v0 /usr/local/jdk/bin/java -jar Project_ExamSystem-V1.0.0.war //使用刚刚创建的镜像创建容器映射端口并启动项目

root@localhost \~# docker ps --all //这里看到启动成功了

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

a425c7feff30 java:v0 "/usr/local/jdk/bin/..." 27 seconds ago Up 25 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp upbeat_lamarr

3035a713b57e nginx:latest "/docker-entrypoint...." About an hour ago Up About an hour 0.0.0.0:80->80/tcp, :::80->80/tcp compassionate_mayer

root@localhost \~# curl 192.168.1.80:8080

{"code":20002,"msg":"账号不存在或密码错误"}root@localhost \~#

本机浏览器访问:192.168.1.

3.mysql

root@localhost \~# docker pull mysql:5.7.44

root@localhost \~# docker run -itd -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:5.7.44

root@localhost \~# docker cp project_exam_system.sql 9d2e:/ //上传sql文件

Successfully copied 11MB to 9d2e:/

root@localhost \~# docker exec -it 9d mysql -uroot -proot

exit

root@localhost \~# docker exec -it 9d /bin/bash

bash-4.2# ls

bin docker-entrypoint-initdb.d home media proc run sys var

boot entrypoint.sh lib mnt project_exam_system.sql sbin tmp

dev etc lib64 opt root srv usr

bash-4.2# mysql -uroot -proot < project_exam_system.sql

bash-4.2# mysql -uroot -proot

mysql> show databases;

+---------------------+

| Database |

+---------------------+

| information_schema |

| mysql |

| performance_schema |

| project_exam_system |

| sys |

+---------------------+

5 rows in set (0.00 sec)

mysql> use project_exam_system

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> create user 'gaof'@'%' identified by 'gaof';

Query OK, 0 rows affected (0.00 sec)

mysql> grant all on gaof.* to 'gaof'@'%';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

mysql> exit

Bye

bash-4.2# read escape sequence

root@localhost \~# docker cp b2:/var/lib/mysql project_exam_system/mysql/

相关推荐
TomEval6 分钟前
【接口自动化】12 - 接口自动化进阶
运维·自动化
牢姐与蒯25 分钟前
Linux文件(一).前传之基础IO
linux·运维·服务器
新时代牛马2 小时前
Linux 磁盘管理:分区、文件系统、挂载与扩容
linux·运维·服务器
大树882 小时前
液冷系统的真正瓶颈,藏在那层不到1毫米的材料里
大数据·运维·服务器·人工智能·ai
yindeshuiketang3 小时前
企业FDE架构方法论到实战指南从想法到商业变现:需求·设计·技术·测试·运维·交付·变现-小红书&抖音 AI马教授 职场启航宝
运维·人工智能·架构
网硕互联的小客服3 小时前
没有公网IP,如何让外网访问内网服务器?
运维·服务器
布裘3 小时前
【银河麒麟】服务器系统开机黑屏故障排查与修复
linux·运维·服务器·银河麒麟·无法启动
凌风的跨境分享3 小时前
Temu店群运维提效:定时策略自动化任务全场景实操指南
大数据·运维·前端·人工智能·架构·自动化
Zenova EdgeOS3 小时前
Linux iotop:工业边缘 I/O 高级分析实战
linux·运维·服务器
Black蜡笔小新3 小时前
运维提效!视频汇聚平台EasyCVR视频质量诊断,掉线花屏自动预警
运维·安全·音视频