Docker(基础)

自制思维导图

在这里插入图片描述

为什么用Docker?

代码在不同的环境和配置下,可能出错。
开发人员和运维人员之间的矛盾。
在这里插入图片描述

在这里插入图片描述
以前提交代码,现在提交镜像
以前搬家,现在搬楼。

Docker理念

Docker是由Go语言实现的云开源项目。
docker理念,一次构建,处处运行。
在这里插入图片描述
虚拟机缺点
1.资源占用多
2.冗余步骤多
3.启动慢

docker可以理解为是一个精华版,缩减版,高速版的linux操作系统。

在这里插入图片描述

为什么Docker比虚拟机快?

在这里插入图片描述

Docker组成

主要组成:
镜像 容器 仓库
镜像就是模板,类比类class
容器就是镜像的实例,类比对象object
一个类可以有多个对象
一个镜像可以有多个容器,每次运行镜像,创建的是不同的容器实例。

在这里插入图片描述
仓库是存放镜像的地方
在这里插入图片描述
我们把应用程序(代码+环境+配置+数据等等)配置打包形成一个运行环境,就是image镜像文件,然后根据镜像文件生成不同的容器实例,容器实例对应不同的服务,如redis,mysql等。

镜像原理

镜像是什么?

镜像是轻量级的,可执行的软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码,运行时,库,环境变量和配置文件等。
在这里插入图片描述
bootfs和rootfs
bootfs主要包含bootloader和kernel内核。bootfs是镜像的最底层。
rootfs在bootfs之上,是各种不同的操作系统发行版,如Ubuntu,Centos等等。
在这里插入图片描述
为啥docker上的linux操作系统很小?
因为在docker上下载的linux操作系统共用docker的bootfs,需要下载的是rootfs部分。而且底层都是直接用宿主机的内核。
在这里插入图片描述
为什么tomcat在docker中很大?
因为它里面包含了能运行tomcat整个环境所需要的其他配置软件。如jdk8,centos,kernel等。这就是联合文件系统(花卷)

在这里插入图片描述

为什么docker要采用这种分层镜像?
为了共享资源。
在这里插入图片描述

容器数据卷

是什么?
就是把docker容器产生的数据持久化,保存下来。
也可以实现容器到主机和主机到容器之间的数据共享

在这里插入图片描述
在这里插入图片描述
容器内添加:
直接命令添加数据卷
v有新建文件夹的功能,这个命令,把宿主机的文件和容器内的文件构成连接,方便宿主机和docker内的容器进行数据共享。就像是电脑的硬盘和usb接口之间的连接。
在这里插入图片描述
在这里插入图片描述
通过docker inspect 容器ID查看宿主机和容器是否绑定
在这里插入图片描述
宿主机的文件夹abc和docker容器内的cba文件夹绑定了
在这里插入图片描述
允许读写操作
在这里插入图片描述
实现了宿主机和docker容器数据共享,而且容器停止退出后,主机修改后,容器下次开启时数据也同步。

容器内的命令设置只读
宿主机可以读写,docker容器只能读,不能写。
在这里插入图片描述
在这里插入图片描述

容器数据卷的继承
在这里插入图片描述
在这里插入图片描述

DockerFile

DockerFile是什么?
DockerFile相当于是对images源码级的描述 。相似于.class对.java的关系。
DockerFile是镜像模板的描述文件。类似linux下的shell编程,只不过这里是docker编程。
在这里插入图片描述
DockerFile内容基础知识
在这里插入图片描述
Docker执行Dockerfile的大致流程
在这里插入图片描述
Dockerfile,Docker镜像,Docker容器之间的关系
在这里插入图片描述
在这里插入图片描述
DockerFile主要的保留字指令
add和copy差不多,但是add更强,在复制后能解压。
CMD和ENTRYPOINT差不多,使用CMD,后面的命令会把前面的命令覆盖。使用ENRTYPOINT,后面的命令不会覆盖前面的,而且追加。
在这里插入图片描述
自定义Dockerfile
1.在宿主机上完成代码
在这里插入图片描述
2.构建
docker build -f 宿主机路径 -t 目的镜像名:标签 .
注意最后面还有一个.
在这里插入图片描述

一步一步构建镜像,花卷包装,一步步执行。
在这里插入图片描述
成功
在这里插入图片描述

本地镜像发布到阿里云逻辑图

和git提交到github上类似
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值