上面记录了基本使用,但是比如部署一个站点,数据库等等,这些就需要和虚拟机内部打交道了。

举一个简单的例子。

比如pull一个tomcat的镜像,发布一个站点该怎么做。

首先 编辑一个文件,名字 Dockerfile

!我只知道这个名字,目前在那时认为一定要这个名字

然后编辑这个文件的内容

FROM tomcat:7.0.81-jre8

COPY XXX.war /usr/local/tomcat/webapps/

第一句话是告诉Docker要去找哪个镜像,这里是 Tomcat7.0版本带上JRE8

然后拷贝一个WAR文件到 镜像里面的目录 /usr/local/tomcat/webapps/

保存这个文件。

执行

docker build -t 喜欢的名字 .

这样就会从仓库拉回来 一个Tomcat的镜像,并且把本地目录下的WAR文件拷贝到机箱里面的目录,并且命名这个镜像为 喜欢的名字。

!这里利用Tomcat的默认特点,Tomcat启动的时候会自动寻找WebApps下的WAR包,如果有,他会解压并加载

最后加载这个镜像跑起来在镜像的8080,宿主的8888

docker run -it --rm -p 8888:8080 喜欢的名字

这种方式窃以为还能在多个端口同时加载多个相同的镜像,实现容错。前端用代理负载平衡一下即可。

当然程序本省要先照顾到,比如REST API这种就OK

加上利用,保存镜像,恢复镜像的命令,分分钟实现跨宿主部署。 

docker save -o demo.tar XXXX
docker load --input fedora.tar

忘了一部,首先需要保存现有内容到IMAGE然以后才能SAVE和LOAD

docker commit -p <ContainerID> <ImageName>

最后修改日期: 2018年6月11日

作者