容器学习点点滴滴(一)
- 2019 年 10 月 6 日
- 笔记
微服务与容器可以说是互相依赖,在互联网公司(如京东电商),容器基本成为11.11的抵抗洪峰的利器。
一、容器的安全性如何?什么版本支持容器?
容器依赖于Linux的NameSpace、CGroups的特性,属于逻辑隔离,安全性肯定不如何虚拟机的操作系统底层隔离来得好。
Linux内核高于3.10的64位版本都支持容器。
root@Master:~# uname -r
4.2.0-27-generic
二、容器相比虚拟机有什么优势?
1、体积小
像centos的docker镜像大小,一般只有200M。
像下面这个ubuntu的操作系统镜像,才69.9M,真是小的出乎意料。
docker.io/ubuntu 69.9 MB
2、启动超快
一般1s内完成启动。但如果容器未被调用,实际是未被加载到内存的,只是在镜像上加了一个可读写层而己。而虚机一般需要1分钟左右才能启动。
3、支持数量多
一般单物理机中可以持上千个容器在线运行,而虚机一般只支持几十个。
三、容器与镜像有什么关系?
如果有面向对象的编程经常,镜像是类class,容器是实例instance。如有一个“狗”的镜像,而一只活的“沙皮犬“就是容器。
四、容器如何进行外部通信?
运行容器后,我们发现容器会在计算机上启动一个docker0的新网络接口,并为该接口分配一个网段地址。
docker0与计算机会通过桥接/路由方式进行互通。
如下图,实际计算机网络接口为enp0s3,ip网络为10.0.2.15/24;而docker0的网络地址则是172.16.0.1/16。

五、如何启动一个最简单的apache容器?
1、从docker hub公有互联库从下载一个镜像
docker pull httpd
2、启动镜像
docker run -d -p 8088:80 docker.io/httpd
-d代表后台运行
-p代表端口,8088是外网端口,80是docker0的内部端口
3、打开ie测试。
