下面为我整理的目录。
讲解不太顺利,一开始不知道如何去表述,后来讲到了,但是时间不太多了。
Docker 是什么?
Docker VS 虚拟机
Docker 架构
官网:https://docs.docker.com/get-started/overview/#docker-architecture
Docker 三个基本概念
- 镜像(Image)
- 容器(Container)
- 仓库(Repository)
1 | 镜像 ===> 写的代码(没运行,外部不能访问) |
1 | Docker Git |
- 拉取镜像(拉取代码)
- 运行镜像,运行起来的镜像就是容器,容器可以对外提供服务。(运行起来的代码,可以对外提供服务。)
- 镜像可以push推送至仓库。(代码也可以push)
- 镜像是分层的,每一层都是只读的。(代码是只读的)
- 容器就是在镜像的所有只读层上面多了一个读写层,上面的修改会覆盖下面的。(代码也可以修改,修改之后,对于之前的就会进行覆盖)
Docker解决了我哪些问题?
1、运行服务简单(一键运行):Redis,Kafka,Zookeeper,MySQL,…
2、部署服务:部署SpringBoot,本地打成 jar包上传仓库,服务器仓库拉取,直接docker run,就可启动服务
3、隔离性好:可能你Windows装MySQL,装不好,卸载也不干净。使用 docker,不想用只需要docker rm删除容器即可。
4、操作简单:想启动start,想停止stop,想创建run,想删除rm,…
5、隔离性好:各个容器互相隔离,当然你也可以使用网络,挂载等技术让它们有联系
6、docker-compose 一键部署集群(Nacos x3+Mysql x1),一键部署多个服务(Kafka x1+Zookeeper x1)
7、配合Jenkins做(持续集成Continuous Integration(CI)和持续交付Continuous Delivery(CD))
8、想不起来了…
容器的问题
容器就是一个运作起来的操作系统。
在应对某些需求时,要考虑几个方面。
Dockerfile
参考:Docker 分类。Dockerfile。