Docker安装tomcat容器并在容器内部署war包再保存镜像

一、安装镜像

下载并安装需要版本的tomcat镜像,步骤参考“安装MySQL8.0镜像

二、将war包放入服务器

用FileZilla工具将war包上传至运行容器的服务器中

三、创建并运行容器

sudo docker run -d 
                   --name=container_name
                   -p 80:8080
                   -e DB_HOST=11.11.11.11
                   -e DB_PORT=3306
                   ...//很多环境变量
                   tomcat:8-jdk8

四、在容器内部部署war包并运行

sudo docker cp ***.war container_name:/usr/local/tomcat/webapps/

进入容器相应路径验证war包是否已存在。
至此,已完成tomcat容器的创建,并在容器内部部署了war包

在网页中输入11.11.11.11:80/***,验证是否可以访问

五、保存镜像

通过基础镜像进行一系列操作,再将修改过的基础镜像镜像提交成一个新的副本,下次可以直接使用修改过后的镜像。

方法一:docker commit

sudo docker commit -m="描述信息" -a="作者" 容器名/容器ID 目标镜像名:[TAG]
sudo docker commit  container_name image_name:1.0

验证新镜像是否存在

sudo docker images

方法二:Dockerfile

1、Dockerfile介绍

Dockerfile是用来构建docker镜像的构建文件,命令参数脚本。

2、构建步骤

  1. 编写一个Dockerfile文件
  2. docker build 构建成为一个镜像
  3. docker run 运行镜像
  4. docker push 发布镜像(Docker Hub 、阿里云镜像仓库)

3、Dockerfile指令

  • FROM #基础镜像
    FROM是Dockerfile文件开篇第一个非注释行代码,用于为镜像文件构建过程指定基础镜像,后续的指令都基于该基础镜像环境运行,基础镜像可以是任何一个镜像文件,docker build会在docker宿主机上查找指定的文件,如未找到会自动去Docker Hub Registry上拉取,如果没找到对应的镜像就会返回错误信息

  • MAINTAINER #维护者信息(新版即将废弃)

  • LABLE #镜像描述信息

  • ADD
    将本地文件添加到容器中,tar文件会自动解压(网络压缩资源不会被解压),可以访问网络资源

格式:
    ADD <src>... <dest>
    ADD ["<src>",... "<dest>"] 用于支持包含空格的路径
示例:
    ADD hom* /mydir/          # 添加所有以"hom"开头的文件
    ADD hom?.txt /mydir/      # ? 替代一个单字符,例如:"home.txt"
    ADD test relativeDir/     # 添加 "test" 到 `WORKDIR`/relativeDir/
    ADD test /absoluteDir/    # 添加 "test" 到 /absoluteDir/
  • COPY
    功能类似ADD,但是是不会自动解压文件,也不能访问网络资源
  • WORKDIR #镜像的挂载目录
    用于为Dockerfile中所有的RUN、CMD、ENTRYPOINT、COPY、ADD指定设定工作目录。在使用docker run运行容器时,可以通过-w参数覆盖构建时所设置的工作目录
格式:
    WORKDIR /path/to/workdir
示例:
    WORKDIR /a  (这时工作目录为/a)
    WORKDIR b  (这时工作目录为/a/b)
    WORKDIR c  (这时工作目录为/a/b/c)
  • RUN
    镜像构建的时候被需要运行的命令
  • ENV
    构建的时候设置环境变量
  • CMD
    指定这个容器启动的时候要运行的命令,只有之后一个会生效,可被替代
    注:CMD不同于RUN,CMD用于指定在容器启动时所要执行的命令,而RUN用于指定镜像构建时所要执行的命令。

4、示例

编写Dockerfile文件

FROM tomcat:8-jdk8
MAINTAINER Ariel-W
COPY ***.war usr/local/tomcat/webapps/***.war

将Dockerfile文件上传至服务器的相关文件夹内,进入到该路径下,构建镜像

sudo docker build -f Dockerfile文件路径 -t 镜像名:[tag]
sudo docker build -t image_name:1.0 .    //“.”表示在当前文件夹

用此镜像创建容器

sudo docker run -d 
                   --name=container_name
                   -p 80:8080
                   -e DB_HOST=11.11.11.11
                   -e DB_PORT=3306
                   ...//很多环境变量
                   //也可将环境变量用ENV加至Dockerfile文件内,这里就可以不用再写
                   image_name:1.0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值