文档介绍:关于Docker&es的一些问题
http://blog./dyl2530/article/details/52387132
es的过程中遇到的一些问题,以及同事在听过培训之后一些问题,事后我自己去网上找些资料以及问一些资深大牛,我在此做一个归纳总结,将这些问题的解答做一个分享:
1.     容器内的数据该保存在镜像里还是宿主机中?
一般来说,如果是运行时的动态数据,那么这部分数据文件不应该保存在镜像内。在运行时尽量保持容器基础文件不可变的特性,,而变化部分使用挂载宿主目录,或者数据卷来解决。建议看一下官网 docker volume 的文档:https://docs./engine/tutorials/dockervolumes/。
 
2.      如果一个docker容器有几百个端口要映射到宿主机,只能一个个-p映射吗?
Docker的-p是可以用范围的,例如:-p 80001-8010:90001-9010。
 
3.      怎么映射宿主机端口?Dockerfile中的expose和docker run –p 有啥却别?
Docker中有两个概念,一个叫做 EXPOSE ,一个叫做 PUBLISH 。
EXPOSE 是镜像/容器声明要暴露该端口,可以供其他容器使用。这种声明,在没有设定--icc=false的时候,实际上只是一种标注,并不强制。也就是说,没有声明 EXPOSE 的端口,其它容器也可以访问。但是当强制--icc=false 的时候,那么只有 EXPOSE 的端口,其它容器才可以访问。
PUBLISH 则是通过映射宿主端口,将容器的端口公开于外界,也就是说宿主之外的机器,可以通过访问宿主IP及对应的该映射端口,访问到容器对应端口,从而使用容器服务。
EXPOSE 的端口可以不PUBLISH,这样只有容器间可以访问,宿主之外无法访问。而 PUBLISH 的端口,可以不事先 EXPOSE,换句话说 PUBLISH 等于同时隐式定义了该端口要 EXPOSE。
docker run 命令中的-p, -P 参数,以及 中的  ports 部分,实际上均是指PUBLISH。小写-p 是端口映射,格式为[宿主IP:]<宿主端口>:<容器端口>,其中宿主端口和容器端口,既可以是一个数字,也可以是一个范围,比如:1000-2000:1000-2000。对于多宿主的机器,可以指定宿主IP,不指定宿主IP时,守护所有接口。大写-P 则是自动映射,将所有定义 EXPOSE 的端口,随机映射到宿主的某个端口。
 
4.      通过docker images命令显示的镜像很大,每次都要下载这么大的镜像么?
其实这个显示的是计算后的大小,docker image是分层存储的,,已有的层能够被共享,不会被重复下载,只需下载变化的层,所以实际下载的比这个数值要小。
 
5.      Docker的日志问题?
Dockerdaemon 的日志一般是交给了 Upstart(Ubuntu ) 或者 systemd (CentOS 7,Ubuntu )。前者一般位于
/var/log/upstart/ 下,后者一般通过 jounar