docker介绍
笔记
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
docker开发打包部署上线,一套流程做完
隔离:Docker核心思想!打包装箱,每个箱子是互相隔离的
比较Docker和虚拟机技术的不同
-
传统虚拟机,虚拟出一套硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
-
容器内的应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了
-
每个容器间都是互相隔离,每个容器内都有一个属于自己的文件系统,互不影响
DevOps(开发,运维)
应用更快速的交付和部署
传统:一堆帮助文档,安装程序
Docker:打包镜像发布测试,意见运行
更便捷的升级和扩缩容
使用了Docker之后,我们部署引用就和搭积木一样
项目打包为一个镜像,扩展 服务器A 服务器B
更简单的系统运维
在容器化之后,我们的开发,测试环境都是高度一致的
更高效的计算资源利用
Docker是内核级别的虚拟化,在一个物理机上可以运行很多个容器实例!服务器的性能可以被压榨到极致
docker的组成
架构图
镜像(image):
Docker镜像就好比一个模板,可以通过这个模板来创建容器服务,tomcat镜像==>run==>tomcat镜像2容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)
容器(container):
Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建
启动,停止,删除,基本命令
目前就可以把这个容器理解为就是一个建议的linux系统
仓库(repository):
仓库就是存放镜像的地方!
仓库分为共有仓库和私有仓库!
Docker hub(默认是国外的)
阿里云...都有容器服务器(可以配置镜像加速)
Docker安装(linux环境)
1.卸载旧版本
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.安装依赖
$ sudo yum install -y yum-utils
3.配置阿里云镜像
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.更新软件包索引
yum makecache fast
5.安装docker引擎
sudo yum install docker-ce docker-ce-cli containerd.io
1.启动docker
systemctl start docker
2.测试helloworld
sudo docker run hello-world
docker version
查看docker的镜像
docker images
卸载docker
1.卸载依赖
$ sudo yum remove docker-ce docker-ce-cli containerd.io
2.卸载镜像,容器和卷
$ sudo rm -rf /var/lib/docker
底层原理
Docker是怎么工作的?
Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,通过Socker从客户端访问!
DcokerServer接收到Docker-Client的指令,就会执行这个命令
Docker为什么比VM快?
1.Docker有着比虚拟机更少的抽象层
2.docker利用的是宿主机的内核,vm需要是Guest OS
所以说,新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导.虚拟机是加载Guest OS,分钟级别的,而docker是利用宿主机操作系统,省略了这个复杂的过程,秒级.

时间花在哪里,成就就在哪里

浙公网安备 33010602011771号