Docker 1.13安装和新功能
2017-01-24
Docker 1.13新功能 #
Docker 1.13在去年年底发布,是一个重要的版本。以下是Top 10新增功能:
- 正式支持服务栈: docker stack
- 正式支持插件: docker plugin
- 添加在Swarm集群环境下对密码、密钥管理的secret管理服务docker secret
- 增加docker system命令
- 可以直接使用docker-compose.yml进行服务部署
- 添加docker service滚动升级出现故障后回滚的功能
- 增加强制再发布选项docker service update --force
- 允许docker service create映射宿主端口,而不是边界负载均衡网络端口
- 允许docker run炼乳制定的swarm mode的overlay网络
- 解决中国GFW墙掉docker-engine apt/yum源的问题
Docker 1.13安装 #
官方的安装文档在内容也做了更新。
安装yum-utils
1yum install -y yum-utils
安装docker 1.13的repository
1yum-config-manager \ 2--add-repo \ 3https://docs.docker.com/v1.13/engine/installation/linux/repo_files/centos/docker.repo
更新yum package index
1yum makecache fast
查看版本
1yum list docker-engine.x86_64 --showduplicates |sort -r 2docker-engine.x86_64 1.13.0-1.el7.centos docker-main 3docker-engine.x86_64 1.12.6-1.el7.centos docker-main
安装指定版本的docker engine
1yum -y install docker-engine-<VERSION_STRING> 2 3yum -y install docker-engine-1.13.0 4 5systemctl start docker 6systemctl enable docker
验证安装
1docker run hello-world
Docker 1.13之走马观花 #
下面快速过一遍docker 1.13的新功能。
Builder #
从已有镜像获取构建缓存
docker 1.13位docker build增加了新的参数
--cache-from
,可以利用指定镜像中的历史来判断某一层是否需要重新构建。下面的命令在构建镜像myimage:v1.1时,如果myimage:v1.1中存在没有修改的层,就会使用myimage:v1.0中的该层做缓存。1docker pull myimage:v1.0 2docker build --cache-from myimage:v1.0 -t myimage:v1.1 .
squash镜像
这目前还作为docker 1.13的实验功能,为docker build增加一个
--squash
的参数,当指定此参数时,Dockerfile中的所有操作将会被压缩为一层,但同时会保留docker history。不推荐使用这个参数,在编写Dockerfile时建议还是遵循保持镜像小巧的最佳实践,例如将多个RUN命令用\合并为一个,同时确保合适的清理工作。
docker build增加
--network
指定网络docker build的--network参数用于指定构建时的网络,例如下面命令构建的镜像将使用宿主的网络命名空间。
1docker build --network=host
Remote API(v1.25) & Client #
docker stats增加
--format
参数使用下面的docker stats命令可以打印容器的名字
1{% raw %} 2 docker stats --format 'table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.MemPerc}}\t{{.NetIO}}\t{{.BlockIO}}\t{{.PIDs}}' 3{% endraw %}
Runtime #
增加docker system命令
- docker system df 显示磁盘使用情况
- docker image prune 删除无用的镜像
- docker container prune 删除无用的容器
- docker volume prune 删除无用的卷
- docker network prune 删除无用的网络
- docker system prune 删除无用的镜像、容器、卷、网络
DEPRECATION #
- 标记docker daemon为废弃,改由单独的dockerd替代
- 废弃 Dockerfile 中的 MAINTAINER 指令,可以用 LABEL maintainer=<…> 代替