由于当前新换了mac电脑,在装本地oracle数据库时发现当前oracle没有mac-m1芯片版本,故通过使用Docker镜像文件连接到了oracle数据库,以下为自己记录的一些Docker基础知识:
Docker能做什么?
比较Docker和虚拟机技术的不同:
- 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件。
- 容器内的应用直接运行在宿主机的上,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了。
- 每个容器间是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响。
Docker是怎么工作的?
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上。通过Socket从客户端访问。
Docker-Server接收到Docker-Client的指令,就会执行这个命令!
镜像 (image):
docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像> run>tomcato1 容器(提供服务器)
通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)
容器(container):
Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建的。
启动,停止,删除,基本命令!
目前就可以把这个容器理解为就是一个简易的linux系统
仓库(reFository):
仓库就是存放镜像的地方!
仓库分为公有仓库和私有仓库!
Docker Hub ( 默认是国外的)
阿里云…都有容器服务器(配置镜像加速!)
为什么Docker比VM快?
docker有着比虚拟机更少的抽象层。由于docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。
- docker利用的是宿主机的内核,而不需要Guest OS
- GuestOS: VM(虚拟机)里的的系统(OS)
- HostOS:物理机里的系统(OS)
当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核,避免引导。加载操作系统内核是个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载GuestOS,返个新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了这个复杂的过程,因此新建一个docker容器只需要几秒钟。