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

2024-08-31 01:44

本文主要是介绍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/

这篇关于Docker续5:docker部署nmt(mysql,nginx,tomcat)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1122536

相关文章

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

MySQL错误代码2058和2059的解决办法

《MySQL错误代码2058和2059的解决办法》:本文主要介绍MySQL错误代码2058和2059的解决办法,2058和2059的错误码核心都是你用的客户端工具和mysql版本的密码插件不匹配,... 目录1. 前置理解2.报错现象3.解决办法(敲重点!!!)1. php前置理解2058和2059的错误

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE