转载

Docker 1.5新特性:支持IPV6、只读容器、容器运行监控,还有彩蛋

Docker 1.5新特性:支持IPV6、只读容器、容器运行监控,还有彩蛋

Docker项目开发组决定在新的一年开始之初放出一些很酷的东西,大家都猜到了,那就是Docker 1.5,也是2015年Docker的第一个release版本。在这个版本中我们“消灭”了长久以来存在的,令人讨厌的bug;同时也将社区中比较火的功能PR融入其中。还等什么,让我们看看这些变化吧!

在新版本中你可以使用新提供的-ipv6标记来为每个容器分配IPV6的地址。您可以在容器中解析ipv6地址,甚至可以使用这个特性连接不同宿主机上运行的Docker容器。如果需要对此功能做深入了解,请查看此文档。那我们开始愉快的使用这个新特性吧:

支持IPV6

  1. run the nginx container 
  2. $ docker run -d -p  80 : 80  --restart always --name ipv6-nginx nginx 
  3. exec into it to change the  default  config to support ipv6 
  4. $ docker exec -it ipv6-nginx bash 
  5. edit the /etc/nginx/conf.d/ default .conf 
  6. under listen  80
  7. add the following line: 
  8. listen [::]: 80  
  9. restart the nginx service 
  10. this  will also pop you out of the container 
  11. and back to your host 
  12. root @container  # service nginx restart 
  13. get the global ipv6 address 
  14. $ docker inspect --format= "{{.NetworkSettings.GlobalIPv6Address}}"  ipv6-nginx 
  15.  
  16. 2a00: 1450 :: 242 :ac11:5e 
  17.  
  18. $ curl - 6  -g [2a00: 1450 :: 242 :ac11:5e] 

只读容器

您可使用--read-only标签启动一个容器,使她在文件系统层面上“只读”;这个功能可以让你为容器中运行的应用限定特定的文件写入路径;此功能结合“数据卷”(volumes)使用可以确保容器中运行的程序只能将数据写入到事先指定的路径下。

容器运行监控

容器很“屌”!它能将你要运行的程序打包,然后以一个整体的可以移植的方式运行;同时还能限定每个容器运行时能使用的资源,防止某些容器将宿主机资源用尽的情况。为了能够更精确的限定每个容器能使用的资源,你需要实时获取到容器运行时使用资源的情况。

在Docker 1.5中我们发布了新的统计API(stat API endpoint)与新的命令行工具;使用这些方式你可以实时监控一个运行容器的CPU、内存、网络IO与块设备IO运行情况。你也可以使用stats API来构建工具来将这些信息传送到已有的监控系统中,或者自己实现一个监控面板。

Docker 1.5新特性:支持IPV6、只读容器、容器运行监控,还有彩蛋

指定要构建的Dockerfile

这可能是近几个月来最被期望的PR了:为docker build命令指定要使用的Dockerfile,而不是一味的执行默认的Dockerfile。docker build -f命令可以让你为一个项目定义多个用途的Dockerfile,同时指定此次运行的docker build -f命令运行的是哪一个。这个对于测试与生产环境要使用不同的Dockerfile生成镜像的项目来说非常有帮助。

开放Docker镜像构建机制

随着Docker社区的日益壮大,越来越多的开发者加入到了Docker社区,为Docker项目贡献代码。我们也期望开发者能更多的参与Docker镜像的构建与镜像层级构建等方面的开发。作为第一步,我们开放了Docker镜像的低层实现机制,包括如何构建与格式化一个镜像以及她们低层是如何配置的。我们的目的是,帮助开发者能够更好的理解Docker镜像——这是Docker非常低层非常重要的方面;以帮助他们为改进Docker镜像格式本身做出贡献。第一版文档可以在这里查看。(译者注:这是彩蛋!)

感谢

很多“同志”为了Docker1.5的发布付出了很多艰辛与努力,他们是:Daniel Dao Quang Minh, Don Kjer, Harald Albers, Michal Minar, Phil Estes, Qiang Huang, Andrew Vagin, Abin Shahab;当然还有很多Docker社区的代码贡献者;没有他们就没有这次更新。

正文到此结束
Loading...