1.Docker解决的问题
快速的持续集成
服务的弹性伸缩
部署简单,解放运维
为企业节省了机器资源
2.Docker的思想
Docker思想3.Docker的技术
底层为Linux的LXC技术,将资源分隔,限定资源的使用
LXC https://www.cnblogs.com/lisperl/archive/2012/04/15/2450183.html
4.镜像 image
Linux的存储系统Unionfs:联合文件系统,一种分层的文件系统,
将不同的目录挂载到相同的虚拟路径下,这样就可以实现分层
Docker就是利用这样的分层的概念实现的镜像存储
Docker镜像的存储格式最下面的就是操作系统的引导
倒数第二层就是比如我们现在用的Linux的操作系统
图中的Emacs,是一个著名的集成开发环境和文本编辑器,可以理解为系统或其他调用的应用,如:Tomcat,nginx
而Apache可以理解为我们的自己开发的应用
这些image都可以看成是一层【联合文件系统】
需要注意的是,这些image都是只读的
5.容器 container
当被运行,就会产生一层可读可写的层,即图中的Container容器层,writeable
当需要修改文件中的内容时,就会将image镜像层中的文件拷贝到Container容器层,然后进行修改
这样相同的镜像就可以产生多个容器,而且他们之间没有任何的干扰
6.仓库 registry
我们将自己的项目上传到仓库,在其他服务器上从仓库中下载,然后进行运行
Docker官方仓库
hub.docker.com
网易蜂巢
c.163.com
DaoCloud
http://www.daocloud.io/
也支持私有仓库,比如:在公司内网中
7.安装Docker
在centos和redhat上安装docker
http://www.imooc.com/article/16448
很简单,按照博客中的进行即可
Macos,windows,Ubuntu的在https://www.imooc.com/learn/824中都有视频介绍
8.Docker初体验
拉取及运行Docker官方的hello-world过程图9.Docker网络
Docker网络模式示意图9.1网络类型
Bridge
桥接:默认情况下会分配一个独立的network namespace,虚拟出独立的网卡,配置自己的ip等等
Host
和主机共同使用一个network namespace,而是会使用宿主机上的IP和端口,在Docker中和主机使用网络是相同的
None
没有任何网络,并不会和外界通讯
9.2端口映射
Docker可以指定,容器内的端口和宿主机间的端口做一个端口映射,当访问宿主机的端口的时候,就是访问容器主机的端口
docker run的命令可选参数中
-p 8080:80
8080是我们宿主机的端口
80是nginx开放的端口
dad
网友评论