LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。
3。Docker解决什么问题
【1】。我本地环境没问题啊〜(docker集装箱解决该问题)
【2】。系统好卡,哪个同学又写死循环了〜(docker隔离性解决该问题,如:linux本来是多租户,允许多个用户使用。)
【3】。双11来了,服务器撑不住了。(节日前扩展机器,节后再下线节点。浪费。有了docker,即可随时扩充服务器。)
docker让快速扩展 & 弹性伸缩变得简单。
4。Docker核心技术
镜像:(集装箱)
仓库:(超级码头)
容器:(运行程序的地方)
用docker运行一个程序的过程:去仓库把镜像拉到本地,用一条命令,把镜像运行起来变成容器。
Build:构建镜像 [镜像 类比 集装箱]
Ship:运输镜像(从仓库 & 主机上运输)[仓库 类比 超级码头]
Run:运行镜像(运行的镜像就是一个容器)- [容器 就是 运行程序的地方]
5。Docker镜像
鲸鱼驮着的就是一堆镜像
Docker镜像:镜像就是一系列的文件,它可以包括应用程序,应用环境的文件,docker将它保存到本地,以什么格式保存(涉及技术linux的存储技术:联合文件系统)
联合文件系统:docker Unie fileSystem (分层)(可将不同目录挂在同一文件系统)
test1第一层,test2第二层。test联合文件系统可以看到所有。
镜像存储格式:
最底层-》最顶层:
【1】操作系统引导 【2】具体linux操作系统 【3】相关软件,如tomcat/jdk【4】存储应用代码【5】容器
以上这些均为一个文件系统,为一个docker镜像。
6。Docker容器
容器的本质就是一个进程。(容器在镜像的最上层为可读可写,镜像的其他层均为只读)
(可将容器理解为一个虚拟机)
Docker镜像的每一层都是只读的,而容器作为最上层,是可读可写的。如果程序需要对镜像进行修改,那么Docker会把要修改的镜像文件拷贝到最上层的容器中,然后再进行修改。往后对该文件的访问会优先从容器中读取,寻找文件的顺序是从下往下。
7。Docker仓库
构建镜像的目的是在其他环境或其他机器上运行我的程序。
需要将镜像传输到其他环境--应用docker仓库(构建镜像-》运输-》Docker仓库《- 目地的从docker仓库拉取镜像)
docker提供中央仓库:地址(hub.docker.com / c.163.com)
8。Docker安装
视频地址;https://www.imooc.com/video/14616 (windows/ mac /linux)
推荐linux,docker本身在linux研发,更源生。
Mac安装:
https://docs.docker.com/docker-for-mac/edge-release-notes/#docker-community-edition-18050-ce-mac66-2018-05-17