当前位置: 首页 > news >正文

八月二十九日(day 39)docker6

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
浏览器访问: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                    //--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.80


3.mysql
[root@localhost ~]# docker pull mysql:5.7.44                                //拉取mysql镜像
[root@localhost ~]# docker run -itd -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:5.7.44          //创建容器
[root@localhost ~]# cd project_exam_system/
[root@localhost project_exam_system]# mkdir mysql             //创建mysql目录
[root@localhost project_exam_system]# mv /root/project_exam_system.sql mysql/       //把sql文件放进去
[root@localhost project_exam_system]# mkdir java          //创建Java目录,把关于java的文件也移进去,方便管理
[root@localhost project_exam_system]# mv /root/application.properties java/
[root@localhost project_exam_system]# mv /root/jdk-17_linux-x64_bin.tar.gz java/
[root@localhost project_exam_system]# mv /root/Project_ExamSystem-V1.0.0.war java/
[root@localhost project_exam_system]# cd
[root@localhost ~]# docker cp project_exam_system/mysql/project_exam_system.sql b3cd:/      //上传sql文件
Successfully copied 11MB to b3cd:/
[root@localhost ~]# docker exec -it b3cd /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            //运行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> create user 'gaof'@'%' identified by 'gaof';              //创建后端管理账号
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on *.* 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

现在就可以登陆了
访问bu.yuanyu.zhangmin,在数据库中随便找个学生的账号密码

登陆管理员页面:账号密码都是admin

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 个人笔记总结
  • ClickHousez中如何定时清理过期数据库?
  • Akka-集群
  • H264编码
  • 深度学习速通系列:贝叶思和SVM
  • 通过自定义注解、反射和AOP在Spring Boot中动态修改请求参数
  • Android运行时权限详解
  • 低通滤波器
  • Hive/Spark小文件解决方案(企业级实战)–参数和SQL优化
  • Redis在Spring Boot中的应用详细讲解和案例示范
  • C语言实现经典排序算法
  • Go语言的前世今生与未来展望
  • 解析 Agent 在国外智慧金融领域的一个落地场景:智能顾投
  • Burp Suite Professional 2024.8 for macOS x64 ARM64 - 领先的 Web 渗透测试软件
  • java.lang.NoSuchMethodException:方法不存在异常。当访问某个类的不存在的方法时抛出该异常
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • Computed property XXX was assigned to but it has no setter
  • css系列之关于字体的事
  • Javascript Math对象和Date对象常用方法详解
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Netty源码解析1-Buffer
  • PHP的Ev教程三(Periodic watcher)
  • SegmentFault 2015 Top Rank
  • sessionStorage和localStorage
  • spring-boot List转Page
  • 从0到1:PostCSS 插件开发最佳实践
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 一道面试题引发的“血案”
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • !$boo在php中什么意思,php前戏
  • #### golang中【堆】的使用及底层 ####
  • #{}和${}的区别?
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (SpringBoot)第二章:Spring创建和使用
  • (利用IDEA+Maven)定制属于自己的jar包
  • (三)uboot源码分析
  • (三十五)大数据实战——Superset可视化平台搭建
  • (十八)三元表达式和列表解析
  • (四)opengl函数加载和错误处理
  • (学习总结16)C++模版2
  • (一) storm的集群安装与配置
  • .naturalWidth 和naturalHeight属性,
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes