2024年8月26日(线上考试系统,虚拟化技术部署,使用link)

news2024/12/23 6:49:14

[root@docker ~]# systemctl start docker
[root@docker ~]# docker pull mysql

一、线上考试系统 虚拟化技术部署

1、部署前端服务器

project_exam_system.sql数据库文件

   dist网络资源

1.将资源上传到服务器

C:\Users\89765>scp -r "D:\青岛实训\project_exam_system\dist" root@192.168.8.196:~/

2.创建基础容器 在服务器上

[root@docker ~]# systemctl start docker

[root@docker ~]# docker  pull centos

[root@docker ~]# docker run -it --name c2 centos:latest /bin/bash 

3.在容器中修改yum源

[root@a87ca8be2791 /]# rm -rf /etc/yum.repos.d/*

[root@a87ca8be2791 /]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
[root@a87ca8be2791 /]# yum clean all 
[root@a87ca8be2791 /]# yum makecache

4.在容器中安装epel

[root@a87ca8be2791 /]# yum -y install epel-release

5.在容器中安装nginx

[root@a87ca8be2791 /]# yum -y install nginx 

6.CTRL+P+Q
7.导出tar包

[root@docker ~]# docker export -o centos_nginx.tar c2

8.引入tar包,称为镜像

[root@docker ~]# docker import -m "想回家" centos_nginx.tar centos:nginx

9.停用c2容器,删除c2容器

[root@docker ~]# docker stop  c2
c2
[root@docker ~]# docker rm c2
c2

10.创建新的centos nginx容器,同时指定端口,以及挂载目录

[root@docker ~]# docker run -it --name c2 -p80:80/tcp -v /opt/:/usr/share/nginx/html/ centos:nginx /bin/bash

[root@e6addfb6bf6d /]# nginx
[root@b565af57ecb3 /]# ls /usr/share/nginx/html/
assets    containerd  favicon.ico  index.html

11.在容器内部启动nginx CTRL+P+Q

[root@docker ~]# cp -r dist/* /opt/

12.在宿主机上把dist目录中的文件复制到opt目录中

[root@docker ~]# cp -r dist/* /opt/

[root@docker ~]# docker run -it --name c2 -p80:80/tcp -v /opt/:/usr/share/nginx/html/ centos:nginx nginx
[root@docker ~]# docker rm c2
c2
[root@docker ~]# docker run -it --name c2 -p80:80/tcp -v /opt/:/usr/share/nginx/html/ centos:nginx /bin/bash
[root@9eaf9ce6aa1e /]# nginx

2、数据库 

[root@docker ~]# docker pull mysql

[root@docker ~]# docker run -d --name m0 -e MYSQL_ROOT_PASSWORD=root -p3306:3306 mysql:latest

[root@docker ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                                                  NAMES
3db02812f30d   mysql:latest   "docker-entrypoint.s…"   26 seconds ago   Up 25 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   m0

[root@docker ~]# docker exec -it m0 mysql -uroot -proot

用navicat连接宿主机,然后上传sql文件

mysql> show databases;
+---------------------+
| Database            |
+---------------------+
| information_schema  |
| mysql               |
| performance_schema  |
| project_exam_system |
| sys                 |
+---------------------+
mysql> use project_exam_system;
mysql> show tables;
+-------------------------------+
| Tables_in_project_exam_system |
+-------------------------------+
| admin                         |
| category                      |
| com_city                      |
| com_nation                    |
| course                        |
| dept                          |
| dept_student                  |
| exam                          |
| exam_dept                     |
| exam_process                  |
| loginlog                      |
| major                         |
| menu                          |
| paper                         |
| paper_topic                   |
| role                          |
| role_admin                    |
| role_menu                     |
| semester                      |
| student                       |
| teacher                       |
| topic                         |
| user                          |
+-------------------------------+

3、让容器时间和宿主机时间同步

[root@docker ~]# docker run -it --name c3 centos:latest /bin/bash 
[root@9ed7ae58448f /]# date
Mon Aug 26 06:38:07 UTC 2024
[root@9ed7ae58448f /]# [root@docker ~]# 

1.让容器共享宿主的/etc/localtime

[root@docker ~]# docker run -it --name c4 -v /etc/localtime:/etc/localtime centos:latest /bin/bash
[root@98ffe8dffbeb /]# date
Mon Aug 26 14:39:54 CST 2024

4、exec命令

[root@docker ~]# docker exec c4 ls /

5、使用link docker容器IP地址不固定,如果要作为服务器使用,就必须能够直接访问服务,不能直接使用IP,为了容器设置域名,做端口映射也可以保证,但是一旦端口占用,就无法启动了 

语法: docker run -link 容器名称/id:自定义域名

被link的容器必须处于启动状态,否则当前容器无法启动

[root@docker ~]# docker run -d --name m0 -e MYSQL_ROOT_PASSWORD=root mysql:latest
[root@docker ~]# docker run -it --name c0 --link m0:mysqldb centos:latest /bin/bash
[root@f6a428495b41 /]# ping mysqldb

PING mysqldb (172.17.0.2) 56(84) bytes of data.
64 bytes from mysqldb (172.17.0.2): icmp_seq=1 ttl=64 time=0.083 ms
64 bytes from mysqldb (172.17.0.2): icmp_seq=2 ttl=64 time=0.052 ms

[root@f6a428495b41 /]# cat /etc/hosts

172.17.0.2    mysqldb d0d9d505fd15 m0
172.17.0.3    f6a428495b41

[root@docker ~]# docker stop m0

[root@docker ~]# docker run -it --name c1 centos:latest /bin/bash 

[root@docker ~]# docker start m0
[root@docker ~]# docker attach c0
[root@f6a428495b41 /]# ping mysqldb
PING mysqldb (172.17.0.4) 56(84) bytes of data.
64 bytes from mysqldb (172.17.0.4): icmp_seq=1 ttl=64 time=0.091 ms
64 bytes from mysqldb (172.17.0.4): icmp_seq=2 ttl=64 time=0.053 ms
[root@f6a428495b41 /]# cat /etc/hosts
172.17.0.4    mysqldb d0d9d505fd15 m0
172.17.0.3    f6a428495b41

[root@docker ~]# docker stop c0 c1 m0
c0
c1
m0
[root@docker ~]# docker start c0
Error response from daemon: Cannot link to a non running container: /m0 AS /c0/mysqldb
Error: failed to start containers: c0
[root@docker ~]# docker start m0
m0
[root@docker ~]# docker start c0
c0
[root@docker ~]# 

二、docker镜像容器

1. docker client向dcoker daemon 发送创建容器的请求docker run

2. docker daemon查找有无客户端需要的镜像

3. 如果没有,就到容器的镜像仓库下载需要的镜像

4. 拿到容器镜像后,启动容器

 

1.在docker daemo初始状态(没有镜像的时候)/var/lib/docker不存在

2.当docker daemon服务器启动,会自动创建dock目录

3.在没有镜像的情况下。查看overlay2这个目录是只有两个文件,管道文件,I目录(管理镜像和容器的软连接的目录)

4.当我们pull一个镜像之后/va r/lib/docker/overlay2下就有一个新的目录,这个目录就是cenonos的基础目录,这个新的目录就是镜像,就是不可读的层

[root@docker ~]# systemctl stop docker
[root@docker ~]# systemctl stop docker
Warning: Stopping docker.service, but it can still be activated by:
  docker.socket
[root@docker ~]# cd /var/lib/docker/
[root@docker docker]# ls
buildkit    engine-id  network   plugins   swarm  volumes
containers  image      overlay2  runtimes  tmp
[root@docker docker]# cd overlay2/
[root@docker overlay2]# ls
[root@docker overlay2]# cd
[root@docker ~]# rm -rf /var/lib/docker/

[root@docker ~]# systemctl start docker
[root@docker ~]# ls /var/lib/docker/
buildkit    engine-id  network   plugins   swarm  volumes
containers  image      overlay2  runtimes  tmp
[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
[root@docker ~]# docker ps --all
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

[root@docker ~]# docker pull centos
[root@docker ~]# ls /var/lib/docker/overlay2/

[root@docker ~]# docker run -it --name c0 centos:latest /bin/bash

[root@docker ~]# ls /var/lib/docker/overlay2/3b75c5c682b0f40acd84fc2ecb42c6db8f2de904610b728bafb08dff880d01bc

[root@docker ~]# docker exec c0 dd if=/dev/zero of=/zhangsanlisi.txt bs=10M count=100

[root@docker ~]# ls /var/lib/docker/overlay2/3b75c5c682b0f40acd84fc2ecb42c6db8f2de904610b728bafb08dff880d01bc/merged/

[root@docker ~]# tar --numeric-owner --exclude=/proc --exclude=/sys -cvf lxe.tar /
[root@docker ~]# rm -rf lxe.tar 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2076966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言典型例题52

《C程序设计教程(第四版)——谭浩强》 题目: 例题4.4 相传古代印度国王舍罕要褒奖他聪明能干的宰相达依尔(国际象棋发明者),问他需要什么,达依尔回答说:“国王只要在国际象棋的棋盘的…

Shader 中的渲染顺序

1、深度测试和深度写入 有了深度测试和深度写入发挥作用让我们不需要关心不透明物体的渲染顺序比如一个物体A 挡住了 物体B,即使底层逻辑中 先渲染A,后渲染B,我们也不用担心 B的颜色会把A覆盖,因为在进行深度测试时,远…

电池管理系统SOX算法资料优化目录2024.8.26

这篇文章主要写一下这一次更新的几个地方,有对原来的代码及模型进行优化的部分,也有新增加的代码和模型,我就把几个比较典型的给列了出来。但是还有好多的更新没有在下面展示出来,因为一个个展示出来太复杂了。如果你对更新的内容…

如何使用ssm实现基于 SSM 框架的宠物用品电子商务平台设计与实现+vue

TOC ssm258基于 SSM 框架的宠物用品电子商务平台设计与实现vue 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科…

黑神话悟空妖怪平生录

黑神话悟空是一部特别好玩的单机游戏。上一个我这么喜欢的国产单机还是古剑奇谭三。 虽然黑神话的战斗系统和地图系统尚不完善,但是这里面的游记是真的做得很认真。 203个妖怪,203首小诗,203个妖生故事,带你去看妖怪的喜怒哀乐。…

freemarker模版注入

Freemarker模版注入漏洞 模版注入漏洞根因(SSTI,服务器端模版注入)freemarker介绍Freemarker模版注入漏洞关键点漏洞复现环境引入依赖poc 修复方案完整代码(包含修复)参考 模版注入漏洞根因(SSTI&#xff0…

乾坤大挪移--将一个混乱的excel分类整理的辅助VBA代码

excel 乾坤大挪移 你不需要将工作表手动分类; 只需要在”已整理“的标题行增加标题列, listbox会自动获取”已整理“sheet中的标题列,并列出来 你只需要选中同一列中的单元格,点击想移动到的列表的类别,双击或者点…

【云故事探索】NO.7:「越用越上瘾」,中华财险 60% 研发人员用通义灵码提效

云布道师 中华联合财产保险股份有限公司运用“云大模型”技术革新业务,通过阿里云的通义灵码大幅提升编码效率,近60%的研发人员采用,采纳的生成代码占比约20%,显著提升了团队创新能力与代码质量,并积极探索大模型在更多…

基于SpringBoot的智慧党建系统+uniapp移动端+LW示例参考

1.项目介绍 技术栈环境:SpringBootthymeleafuniappIDEA NavicatMySQL 功能介绍: 后端功能:首页管理(轮播图、通知公告、新闻管理)、用户管理(用户信息、用户反馈、用户订单、用户动态)、其他…

一文搞定MybatisPlus

Mybatis简介 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 (来自官网) 体验Mybatisplus 1.创建SpringBoot工程,导入m…

HarmonyOS--认证服务-操作步骤

HarmonyOS–认证服务 文章目录 一、注册华为账号开通认证服务二、添加项目:*包名要与项目的包名保持一致三、获取需要的文件四、创建项目:*包名要与项目的包名保持一致五、添加json文件六、加入请求权限七、加入依赖八、修改构建配置文件:bui…

【UDS诊断】——0x34、0x36、0x37服务

🙋‍♂️【UDS诊断服务介绍合集】系列💁‍♂️点击跳转 文章目录 一、服务概述1.0x34服务——请求下载数据1.1.0x34格式 2.0x36服务——数据传输2.1.0x36格式 3.0x37服务——退出上传下载3.1.0x37格式 一、服务概述 Client端使用Routine Control服务来…

WIN32实现远程桌面监控

文章目录 完整代码API简介调试代码 后记reference 完整代码 server.cpp #include <winsock2.h> #include <Ws2tcpip.h> #include <windows.h> #include <stdio.h> #include <vector> #pragma comment(lib, "ws2_32.lib")LRESULT CAL…

什么是韦恩图,怎么制作?用这款软件在线绘制,简单又好用!

在日常工作和学习中&#xff0c;我们经常需要用图表来可视化呈现复杂的信息和关系。其中&#xff0c;韦恩图是一种简洁而强大的可视化工具&#xff0c;能够清晰地展现集合之间的关系&#xff0c;诸如包含与被包含、互斥、并列等。 不过对刚接触韦恩图的人而言&#xff0c;或多…

traceroute命令这样用,追踪主机路由没烦恼

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 晚上好&#xff0c;我的网工朋友。 网络的稳定性和可靠性对于业务连续性至关重要。当涉及到网络连接问题时&#xff0c;有一个强大的工具就是 tr…

Certum Domain Validation CA SHA2

Certum是波兰的一家数字证书厂家&#xff0c;该机构也是目前世界第四家兼容性在99%机构&#xff08;包括历史版本浏览器&#xff09;&#xff0c;目前在国内有授权提供商&#xff1a;Gworg提供签发和认证&#xff0c;拥有二级代理划分&#xff0c;适合长期做SSL证书业务或者集成…

年薪100K入职字节测试岗现在分享下我常背的软件测试面试题

800道软件测试面试真题&#xff0c;高清打印版打包带走&#xff0c;横扫软件测试面试高频问题&#xff0c;涵盖测试理论、Linux、MySQL、Web测试、接口测试、APP测试、Python、Selenium、性能测试、LordRunner、计算机网络、数据结构与算法、逻辑思维、人力资源等模块面试题&am…

Linux文件编程(系统API调用)

文章目录 Linux文件编程标注C的IO缓存类型代码示例--缓存区的存在 文件I/O系统调用标准C库关于文件的输入输出函数FILE结构体文件描述符文件描述符与文件指针的相互转换 系统调用常用函数open函数&#xff08;打开或者创建文件&#xff09;creat函数&#xff08;创建一个现有文…

JAVA-封装

目录 一、封装的概念 二、封装扩展之包 1. 包的概念 2.导入包中的类 3.自定义包 4.常见的包 三、访问限定符 在同一包中&#xff1a; 在不同包中&#xff1a;​编辑 一、封装的概念 面向对象程序三大特性&#xff1a;封装、继承、多态。而类和对象阶段&#xff0c;主…

ESP32修改分区表

修改分区表 官方参考 在工程目录文件夹新建分区表&#xff0c;参考官方的写就行&#xff0c;我这里改成了8M的FLASH&#xff0c;所以新建的分区表为名字是 default_8MB.csv &#xff0c;内容如下&#xff1a; # Name, Type, SubType, Offset, Size, Flags nvs, data, …