实训day36(8.26)

2024-08-29 11:28
文章标签 实训 day36 8.26

本文主要是介绍实训day36(8.26),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、部署前端页面

[root@localhost ~]# ls                             //导入dist项目
anaconda-ks.cfg  centos_httpd.tar  centos_nginx  centos.tar  centos_yum.tar  dist
[root@localhost ~]# docker pull mysql                   //下载mysql
[root@localhost ~]# docker images                            //查看镜像
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
centos       httpd     55b1539d5cd6   2 days ago    309MB
centos       yum       9d43e5c9d7e4   2 days ago    260MB
mysql        latest    a82a8f162e18   4 weeks ago   586MB
centos       latest    5d0da3dc9764   2 years ago   231MB
[root@localhost ~]# docker run -it --name c0 centos:yum /bin/bash        创建并启动容器      
[root@0719e2c449f5 /]# yum -y install nginx     
ctrl+p+q退出
[root@localhost ~]# docker export -o centos_nginx c0                          //导出为tar
[root@localhost ~]# docker import -m "维护世界" centos_nginx centos:nginx                   //导入为镜像
 [root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
centos       nginx     7ecd5a5a376f   15 seconds ago   366MB
centos       yum       589cbc1074de   4 minutes ago    366MB
centos       httpd     55b1539d5cd6   2 days ago       309MB
mysql        latest    a82a8f162e18   4 weeks ago      586MB
centos       latest    5d0da3dc9764   2 years ago      231MB
[root@localhost ~]# docker ps -all
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS     NAMES
0719e2c449f5   9d43e5c9d7e4   "/bin/bash"   23 minutes ago   Up 23 minutes             c0
[root@localhost ~]# docker stop c0 
c0
[root@localhost ~]# docker rm c0
c0
[root@localhost ~]# docker run -it --name c0 -p80:80/tcp -v /opt/:/usr/share/nginx/html/ centos:nginx /bin/bash                                      //创建,指定端口,挂载并启动c0容器
[root@f66e2e996233 /]# nginx
ctrl+p+q退出
[root@localhost ~]# cp -r dist/* /opt                      //把项目传到挂载目录下
浏览器访问本机IP


二、部署mysql

[root@localhost ~]# docker run -d --name m0 -e MYSQL_ROOT_PASSWORD=root -p3306:3306 mysql:latest                                    //-d,隐藏启动  -e,设置mysql密码  -p映射端口
87d71e02c8eaa448eddc2c181622ae0affbc45cf69900735c157026837ed337c
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                                                  NAMES
87d71e02c8ea   mysql:latest   "docker-entrypoint.s…"   18 seconds ago   Up 17 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   m0
[root@localhost ~]# docker exec -it m0 mysql -uroot -proot                          //登陆mysql
mysql> exit
去navicat导入sql文件


三、核对时间

[root@localhost ~]# docker run -it --name c1 -v /etc/localtime:/etc/localtime centos:nginx /bin/bash     //让容器共享宿主的/etc/localtime
[root@cd7ae2b2e21c /]# date
Mon Aug 26 15:07:18 CST 2024
ctrl+p+q退出


四、容器之间的依赖

--link 容器名:别名
[root@localhost ~]#  docker run -it --link c0:mysqldb --name c1 centos:nginx /bin/bash
[root@6c310c115194 /]# ping mysqldb                    //能ping通
64 bytes from mysqldb (172.17.0.2): icmp_seq=1 ttl=64 time=0.339 ms
[root@6c310c115194 /]# cat /etc/hosts
172.17.0.3    mysqldb 87d71e02c8ea c0
172.17.0.5    6c310c115194
ctrl+p+q

测试:
# 暂停服务
[root@docker001 ~]# docker stop c0 c1
c0
c1
[root@docker001 ~]# docker start c1                         //先启动主动依赖容器
# ⽆法启动,提示被link的容器没有启动
Error response from daemon: Cannot link to a non
running container: /c0 AS /c1/mysqldb
Error: failed to start containers: c1
[root@docker001 ~]# docker start c0                              // 启动被依赖的容器
c0
[root@docker001 ~]# docker start c1                             // 再启动主动依赖的容器
c1

测试:使⽤⼀个容器占⽤172.17.0.2,测试
[root@docker001 ~]# docker stop c0 c1                          # 停⽤容器
c0
c1
[root@docker001 ~]# docker run -it --name c2 centos:nginx /bin/bash              # 创建新容器 占⽤172.17.0.2
[root@2114e0e97441 /]# 
ctrl+p+q退出
[root@docker001 ~]# docker start c0 c1            # 启动 c0 c1             
c0
c1
[root@docker001 ~]# docker exec c1 ping mysqldb                           # 在c1容器ping别名
PING mysqldb (172.17.0.3) 56(84) bytes of data.
64 bytes from mysqldb (172.17.0.3): icmp_seq=1 ttl=64 time=0.157 ms
64 bytes from mysqldb (172.17.0.3): icmp_seq=2 ttl=64 time=0.037 ms
^C
[root@docker001 ~]# docker exec c1 cat /etc/hosts                           #每次启动都修改了/etc/hosts⽂件  
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.3 mysqldb 20f05670b7df c0
172.17.0.4 ba46c0e4055d

1.docker容器的ip地址是不固定,如果要作为服务器使⽤,就必须能够直接访问服务,不能直接使⽤ip,为容器设置域名,做端⼝映射也能保证,确定是⼀旦停⽤之后端⼝被占⽤,就⽆法再次启动了
2.docker run --link. 容器的名称或者是id:⾃定义域名
3.被link容器必须处于启动状态,否则当前容器⽆法启动


五、文件联合系统  overlay

1. docker client向dcoker daemon 发送创建容器的请求 docker run
2. docker daemon查找有⽆客户端需要的镜像
3. 如果没有,就到容器的镜像仓库下载需要的镜像 pull
4. 拿到容器镜像后,启动容器

1.在docker daemo初始状态(没有镜像的时候) /var/lib/docker不存在
2.当docker daemon服务器启动,会⾃动创建dock⽬录
3.在没有镜像的情况下。查看overlay2这个⽬录是只有两个⽂件,管道⽂件 ,l⽬录(管理镜像和容器的软连接的⽬录)
4.当我们pull⼀个镜像之后 /va r/lib/docker/overlay2下就有⼀个新的⽬录,这个⽬录就是cenonos的基础⽬录,这个新的⽬录就是镜像,就是不可读的层
5.当我们使⽤这个镜像创建⼀个容器,在overlay2会添加2个⽬录,⼀个是init⽬录,另外⼀个⽬录就是容器的可写层,⽤户对系统的修改都在可写层中进⾏

六、基础镜像制作

一台需要被做成镜像的主机

1.进程目录
[root@localhost ~]# ls /proc
1      16393  275  295  314  334  353  489   664  842        execdomains  meminfo       sysrq-trigger
10     16788  276  296  315  335  383  49    667  9          fb           misc          sysvipc
11     16954  277  298  316  336  384  490   670  9251       filesystems  modules       timer_list
1143   17113  278  299  317  337  43   491   676  94         fs           mounts        timer_stats
1146   17150  281  3    318  34   45   492   7    9454       interrupts   mpt           tty
1147   18     282  300  319  340  457  493   727  acpi       iomem        mtrr          uptime
12     19     283  301  32   341  458  5     749  asound     ioports      net           version
1297   2      284  302  320  342  46   5418  750  buddyinfo  irq          pagetypeinfo  vmallocinfo
13     20     285  303  322  343  468  562   751  bus        kallsyms     partitions    vmstat
1304   21     286  304  324  344  469  5823  754  cgroups    kcore        sched_debug   zoneinfo
14     22     287  306  325  346  47   584   757  cmdline    keys         schedstat
1406   23     288  307  326  347  482  597   760  consoles   key-users    scsi
1410   24     289  308  329  348  483  616   772  cpuinfo    kmsg         self
14242  25     290  309  33   349  484  63    776  crypto     kpagecount   slabinfo
1530   26     291  310  330  35   485  654   783  devices    kpageflags   softirqs
16     2683   292  311  331  350  486  656   786  diskstats  loadavg      stat
16092  2687   293  312  332  351  487  658   8    dma        locks        swaps
16369  274    294  313  333  352  488  660   800  driver     mdstat       sys

2.sys⽬录是内核⽂件保存位置,不允许修改
[root@localhost ~]# ls /sys
block  bus  class  dev  devices  firmware  fs  hypervisor  kernel  module  power
[root@localhost ~]# mkdir /sys/abc
mkdir: 无法创建目录"/sys/abc": 不允许的操作

3.排除以上2个⽬录,并且将⽤户设置为数字
[root@localhost ~]# tar --numeric-owner --exclude=/proc --exclude=/sys -cvf centos7.tar /


4.将项目移动到docker-server主机上
scp

5.查看tar包
[root@localhost ~]# ls
anaconda-ks.cfg  centos7.tar 

6.加载镜像
[root@localhost ~]# docker import -m "说明0" centos7.tar me:me00

7.查看镜像
[root@localhost ~]# docker images

8.创建容器

[root@localhost ~]# docker run -it --name c00 me:me00 /bin/bash

这篇关于实训day36(8.26)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

研一实训总结

说长不长说短不短的一个月,从最开始的激动到期间,要中期要兼顾找实习准备笔试面试的焦虑,再到最后一周的加班加点和总结,收获和感触还是蛮多的。 首先,这一个月让我更加全面的认知了完成一个从无到有项目的过程,激发了我对自己工程师职业生涯的向往和对自己有了更广的除了编码以外的要求。 我一直是一个结果导向和追求效率的人,所以在团队合作过程中我们也经历了最开始的不知所措,到争执,再到主动配合和贡献,这个过

Java高级Day36-网络编程

104.网络的相关概念 IP表示:对于IPV4 4个字节(32)表示,1个字节的范围是0~255 IP组成=网络地址 + 主机地址 IPV6用128位 域名:通过HTTP协议,将ip地址映射成域名 端口号:用于标识计算机上某个特定的网络程序 可以这么理解,通过IP+端口,可以找到确定网站的确定服务 网络通信协议:数据在网络编程中,数据的组织形式就是协议 可以这么理解:人和人交流依靠

青岛实训 8月22号 day34

一、回顾 1.主从复制(高可用) 2.传统的主从复制 3.gtids事务型的主从复制 4.注意 1)server_id唯一 2)8.X版本需要get_ssl_pub_key 3)5.X不需要 4)change master to 5)stop | start slave 5.非交互 import pymysql conn=pymysql.connect(host=xxx,user=xxx,pa

Android智能家居实训day5

今天的内容也还是数据库的通讯,主要是从客户端向服务器发送数据,通过byte数组来模拟客户端可以识别的结构体,但是在发送数据的时候数据是以二进制数的字符串形式传入的所以要将字符串转换为8位无符号整数所以需要进行转换,而在转换的时候byte只有8位在直接进行强转的时候会带入符号位,所以通过先转换成Integer,再转换成byte的时候就只把它后八位砍下来 上代码 cmd = "10100001";

Android智能家居实训day4

今天进行了服务器的部署,和服务器的连接,以及进行了代码整合 再进行学习之前又对线程的知识进行了回顾因为进行连接服务器的时候要通过子线程来进行,线程的启动使用start函数,如果使用run函数相当于执行了一个函数而不是新创建一个子线程。 服务器的部署并没有深究,只是把服务器代码的压缩包放到了虚拟机上。 连接的时候首先要给AndroidManifest.xml文件添加网络权限,其次就是把防火墙关掉。

Android智能家居实训day3

今日内容比较少啊 今日内容主要是通过hellocharts绘制折线图,主要是导包之后,在xml文件中添加控件的时候要写全路径,之后就是在生成图表的时候先通过 AxisValue集合接收横坐标数据集合,PointValues集合接收点集,再通过点集赋值给Line线对象,通过line内部的函数来对折线进行美化,最后放到线集里赋给折线对象。 XY轴的设置是通过Axis对象,也是要通过内部函数设置属性没

Android智能家居实训day2

设置使用的布局文件 setContentView(R.layout.filename);,之后使用布局嵌套,一个布局内部可以嵌套另一个布局,内部的布局相当于外部布局的一个子控件,可以把它当作一个整体来操作,例如在今天的八宫格使用布局嵌套的时候,每一个格子是一个线性布局布局内使用垂直方向,而每两个布局作为一行,一共四行,这样就再拿一个布局框起来使用水平方向最后再把这四个布局用垂直方向。在布局之间分配

Android智能家居实训

老师提出了这次实训的主题智能家居并介绍了智能家居的模式,以及用单片机和手机app配合展示了单片机上各个部件的工作以及其数据的获取和展示。然后进行了项目的所需工具的安装,下午安装完环境和开发工具之后对之前学习的内容进行了复习、创建了android项目并对项目中的每一个模块都进行了功能简介以及将eclipse创建的项目进行了不必要的删减,有关线性布局和相对布局主要介绍了布局的背景颜色、控件的宽高的各个

SSM疫情医院管理系统实训项目总结

项目中我主要负责的是爬虫板块,用的是jsoup通过对html标签的获取到数据再把数据放到echarts图表中,网站是实时统计全球、美国、中国的疫情确诊人数死亡人数以及治愈人数,这个操作我没有用到与数据库交互的相关操作所以只写了controller层的在controller中获取到数据通过对各个标签的筛选用html()把标签中的数据提取到String中,然后通过request将List<String

代码随想录冲冲冲 Day36 动态规划Part4

又一次越来越感受到了动规的“魅力”,头发又开始掉了 1049. 最后一块石头的重量 II 1.dp数组 dp[j]中的 j是 背包为j的情况下 最多能背的石头的最大量 2.dp数组初始化 首先dp[j]中j表示的是容量 那么这个容量最大值就是所有石头的总重量 因为提示中给出1 <= stones.length <= 30,1 <= stones[i] <= 1000,所以最大重量就是3