(Docker)day66javaEE基础查漏补缺

Docker

1.linux厂商不同,开发的函数库和依赖库也不同,但是内核是一样的。

2.docker:windows和linux版本是不兼容的,因为内核不同。

3.解决软件安装的依赖兼容问题:

  • 将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包
  • 将每个应用放到一个隔离容器去运行,避免互相干扰

4.解决不同系统环境的问题:

  • Docker将用户程序与所需要调用的系统(比如Ubuntu)函数库一起打包
  • Docker运行到不同操作系统时,直接基于打包的库函数,借助于操作系统的Linux内核来运行

5.Docker(码头装卸工人)概念:dotCloud 公司出品的一款开源的应用容器引擎

  • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。
  • 容器是完全使用沙箱机制,相互隔离,且性能开销极低。

6.镜像(Image):

  • Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
  • 镜像可以用来创建docker容器。
  • 镜像一般是只读的。

7.容器(Container):

  • 镜像中的应用程序运行后形成的进程就是容器(容器是依赖于镜像的产生的),容器是相互隔离的,对外不可见。

  • 镜像和容器的关系,images(镜像)和类一样,容器和对象一样。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GkgWj9SM-1646847796257)(问题2.assets/1646844058496.png)]

8.docker跟maven仓库类似:

1)远程的镜像仓库(国外:DockerHub,国内网易云镜像库)

2)本地的镜像库。

3)docker也需要配置镜像加速。
在这里插入图片描述

9.通俗理解docker:

1)仓库: 别人做好的现成的镜像,都放在仓库里
2)镜像: 自己要用哪个镜像,就从仓库拉到本地来。

3)镜像就相当于还没激活的容器。
4)容器: 容器就是跑起来的镜像,就是一个完整的工作环境。

10.镜像会指定版本号:不写默认是最新版本。

11.搜索镜像仓库,推荐:https://hub.docker.com/

在docker网站找到对应的版本再下载。

12.容器的状态:运行,停止,暂停。

13.外界想要访问容器(小型操作系统),需要容器在linux上映射一个端口。

容器内的nginx-端口80,也得在linux上映射一个端口。来进行访问。

14.centos等操作系统被称为宿主机。

15.如何区分当前是在容器或操作系统内部:看主机名是谁。

1)itcast:conteos

2)a6827XXX是容器内部

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IGab4tkE-1646847796259)(问题2.assets/1646790833161.png)]

16.容器:相当于一个简单的操作系统(软件+软件需要的依赖库函数库+linux内核),只能用最基本的linux命令。

17.linux内核是由c和汇编来写的。

18.删除容器的话,需要先关闭容器。

19.命令-e和-d是什么意思:

# 创建并启动容器
docker run -d -p 3306:3306 --name=mysql5.7 -e MYSQL_ROOT_PASSWORD=root mysql:5.7 \
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

1)-e是运行环境(指定编码格式等)。

2)-d是后台运行。

20.容器的tomcat为了节约资源,欢迎页等静态资源被删除了,。

21.宿主机怎么复制文件到容器中:

# 从宿主机复制文件到容器(docker cp 宿主机路径 容器名称:容器路径)
docker cp /tomcat/ROOT/ tomcat8.5:/usr/local/tomcat/webapps/

22.什么是挂载?

1)当在 Linux 系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用。合二为一的过程称为“挂载”。

2)挂载,指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件

23.数据卷的作用:

数据卷:相当于快捷方式或共享文件夹。

容器可以对数据卷进行读写操作,容器和数据卷相当于同步的,容器删了数据卷也就删了。

1)持久化。

2)外部和容器通信:数据卷相当于宿主机和容器的共享文件夹。

3)容器间的数据交互:数据卷可以供多个容器来访问。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3baSiQHS-1646847796259)(问题2.assets/1646845533306.png)]

24.数据卷:

  • 数据卷是宿主机中的一个目录或文件,它可以被挂载到容器中,在容器中对它的操作可以直接反应到宿主机上
  • 一个容器可以被挂载多个数据卷,一个数据卷也可以被多个容器同时挂载(配置文件和项目目录都是分开挂载的)

25.不在同网段不能连接数据库。

26.生产环境:可能一台Linux服务器上同时部署多个Tomcat

27.Docker镜像结构:简单理解为一个按层拆分的文件系统。

是将应用程序需要的函数库、环境、配置、依赖打包而成的。

28.镜像分层的作用:有一些公共的镜像层只需要下载一次就可以了。节约资源。

比如:已经下载了jdk,下载tomcat时就不用下载jdk层了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hUXtN29k-1646847796260)(问题2.assets/1646794480489.png)]

29.私人定做镜像:在原有的层级上面再加一层。

30.tomcat是用java开发的嘛?

c和java

1)apache tomcat=Apache http server + Tomcat

2)Apache http server 是由c语言开发,而Tomcat则是由java开发,这也就是为什么,部署Apache Tomcat的时候需要你安装java的原因。

31.Dockerfile:是一个用于描述生产docker镜像的文件。

里面是一条条的指令,每条指令都会对镜像产生一定影响。

31.官网有软件的dockerfile文件。可以在官网的dockerfile的基础上,编辑自己的需求。写服务编排的时候也可以用到。

32.Docker服务编排:批处理部署操作。

1)因为得先启动mysql和redis啥的服务器才能跑java项目。要有一个先后顺序。

2)这些容器需要同时启动,同时停止,如果我们一个个的去操作,就会变的很麻烦,这时候我们就需要一个批量操作容器的工具Compose。

33.Compose:通过一个配置文件(docker-compose.yml)来管理多个Docker容器。

使用步骤:

  • 利用 Dockerfile 定义运行环境镜像
  • 使用 docker-compose.yml 定义组成应用的各服务
  • 运行 docker-compose up 启动应用
  • compose down 停止并删除容器 (先批量的stop容器,再remove容器)

34.docker-compose.yml文件:

1)docker-compose.yml 里面其实就是编排好的,根据镜像创建容器的命令集合。

2)docker-compose.yml这个文件的名字是固定的。跟application.yml一个意思。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XGchPQG0-1646847796261)(问题2.assets/1646837422496.png)]

35.`反引号有什么用?相当于函数调用。

我们使用下面命令先停止并删除所有容器
docker stop `docker ps -q`
docker rm `docker ps -qa`
-q是id号。

36.Docker和VM对比(面试题):

1)虚拟机直接操作计算机硬件,linux虚拟机和windows属于是兄弟(竞争)关系了。

2)容器里面(软件和函数依赖库)(相当于一个进程,开销少。),依赖操作系统的内核,来申请资源。

相同:

容器和虚拟机具有相似的资源隔离和分配优势

不同:

  • 容器虚拟化的是操作系统,虚拟机虚拟化的是硬件。
  • 传统虚拟机可以运行不同的操作系统,容器只能运行同一类型操作系统

应用场景不同:虚拟机模拟多个电脑环境,docker实现软件安装部署

特性容器虚拟机
启动秒级分钟级
硬盘占用一般为MB一般为GB
性能接近原生较差

37.云服务器可以安装虚拟机嘛?

可以。

38.虚拟机里面,可以再运行虚拟机,进行套娃嘛

可以,KVM虚拟化(虚拟机装虚拟机,双重套娃)

39.APK是什么?

APK是AndroidPackage的缩写,即Android安装包(apk)。

Android应用程序的代码要在Android设备上运行,必须先进行编译,然后被打包成为一个被Android系统所能识别的文件才可以被运行。

40.docker总结:

  1. 数据卷挂载目录,实现数据的持久化
  2. 镜像:分层文件系统组成(复用)
  3. 制作镜像的二种方式(容器、dockerFile)
  4. docker服务编排(批处理工具)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值