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

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

如何去写一手好SQL

MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

[MySQL表的增删改查-进阶]

🌈个人主页:努力学编程’ ⛅个人推荐: c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 💻💻💻数据库约束 🔭🔭🔭约束类型 not null: 指示某列不能存储 NULL 值unique: 保证某列的每行必须有唯一的值default: 规定没有给列赋值时的默认值.primary key: