docker构建自己的镜像(以开源博客为例)

将一个javaweb应用部署到docker上

 

首先 将配置写到Dockerfile 文件里面

然后执行 docker build 构建镜像

 

举例:在docker上部署一个博客系统

(博客系统 http://jpress.io )

https://gitee.com/fuhai/jpress/tree/alpha/

具体就是,将下载好的war包,放到docker里面的tomcat目录下

 

先把war包下载好

然后 加载tomcat镜像

docker pull hub.c.163.com/library/tomcat:latest 网易云的公共docker仓库里面的tomcat

docker构建自己的镜像(以开源博客为例)_第1张图片

 

然后创建Dockerfile

 

from hub.c.163.com/library/tomcat:latest //以tomcat镜像为基础 from表示继承自哪个镜像

MAINTAINER laixiaoxing [email protected] //容器所有者

COPY jpress.war /usr/local/tomcat/webapps //将 jpress.war 放到tomcat的webapps目录下 这样启动之后就可以访问了

 

 

docker构建自己的镜像(以开源博客为例)_第2张图片

docker build . // . 表示dockerfile所在的目录 也可以通过 -f Dockerfile 文件的位置 docker build -f /path/to/a/Dockerfile .

如果出现个问题,就是daemon过大的问题

因为 Docker Client会默认发送Dockerfile同级目录下的所有文件到Dockerdaemon中

此时我们的dockerfile 在根目录下 ,里面有很多东西

解决方案就是 将dockerfile 放到单独的目录里去

 

docker构建自己的镜像(以开源博客为例)_第3张图片

 

单独建立了一个app文件夹

将dockerfile放进去,并将我们刚刚下好的war文件也放进去

再次build 成功了

 

docker构建自己的镜像(以开源博客为例)_第4张图片

总结:写好dockerfile文件, 该文件最好放在一个空的目录下,因为build的时候会读取dockerfile所在的整个目录,然后dockerfile里面 设置我们需要的东西

比如在这里,我们需要把war包放到tomcat下面,所以copy jpress.war /usr/local/tomcat/webapps (该路径为tomcat存放web应用的路径)

注意! 这里 jpress需要和dockerfile放到一个目录下,不然会报找不到文件的错误。

 

执行docker images 查看下镜像 发现 那个IMAGEID为 50b099842e3d就是我们刚刚建立的镜像

 

给它取个名字 重新build -t 表示新增个tag名称

$ docker build -t jpress:latest .

再次 docker images 查看一下

发现好了。

 

你可能感兴趣的:(docker)