一. 首先构建一个容器来获取官网示例
Dockerfile如下
FROM ubuntu:16.04
RUN apt-get -y update
RUN apt-get -y install wget
VOLUME [ "/var/lib/tomcat8/webapps" ]
WORKDIR /var/lib/tomcat8/webapps
ENTRYPOINT [ "wget" ]
CMD [ "--help" ]
这个镜像安装了wget,并把/var/lib/tomcat8/webapps作为卷映射,WORKDIR指定了ENTRYPOINT中参数运行的路径文件夹,CMD中的指令在运行时有参数传入的话会被覆盖掉。
之后可以运行docker build指令来构建镜像了
- 构建运行容器下载war包
运行
docker run -t -i --name sample jamtur/fetcher https://tomcat.apache.org/tomcat-8.5-doc/appdev/sample/sample.war
war包会被下载到容器/var/lib/tomcat8/webapps下,由于设置了卷映射,可以在宿主机上的文件夹找到该war包。
查找方法:
-
docker inspect -f "{{.Mounts}}" 容器名称
输出如下
[{volume 5c0642539fc200d228c01074e964bb8deb3779a887c08f87163fc7063fcc2d62 /home/xxm/docker/volumes/5c0642539fc200d228c01074e964bb8deb3779a887c08f87163fc7063fcc2d62/_data /var/lib/tomcat8/webapps local true }]
那一长串就是宿主机上的映射位置.
可以进入该目录查看
-
docker unspect -f "{{.Volumes}}“” 容器名称
这个命令我是没有查到,但是咱使用 -v映射时候可以查到有相应的映射目录
卷在至少有一个容器引用时不会被删除,相反如果没有容器引用到的话,就会被删除
到此,第一步完成.
二. 构建tomcat容器
Dockerfile
MAINTAINER James Turnbull <james@example.com>
ENV REFRESHED_AT 2016-06-01
RUN apt-get -y update
RUN apt-get -y install tomcat8 default-jdk
ENV CATALINA_HOME /usr/share/tomcat8
ENV CATALINA_BASE /var/lib/tomcat8
ENV CATALINA_PID /var/run/tomcat8.pid
ENV CATALINA_SH /usr/share/tomcat8/bin/catalina.sh
ENV CATALINA_TMPDIR /tmp/tomcat8-tomcat8-tmp
RUN mkdir -p $CATALINA_TMPDIR
VOLUME [ "/var/lib/tomcat8/webapps" ]
EXPOSE 8080
ENTRYPOINT [ "/usr/share/tomcat8/bin/catalina.sh", "run" ]
然后构建镜像
运行时输出 --volumes-from (容器名) 来共享上述的文件夹
docker run -d -P --name xxx --volumes-from sample image-name
通过 docker port 容器名查看宿主机对应的端口访问即可。
网友评论