更新时间:2024-04-18 GMT+08:00
分享

Docker上部署ABI

  1. 制作Dockerfile

    Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。可以参照以下方式制作Dockerfile。

    FROM centos:7
    ENV JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Xmx2048m -Xms256m -XX:MaxMetaspaceSize=512m -XX:MetaspaceSize=256m -Duser.timezone=Asia/Shanghai
    -Desen.abi.workdir=/usr/local/workdir -Djava.awt.headless=true"
    ENV JAVA_HOME /usr/local/java
    ENV JRE_HOME /usr/local/java/jre
    ENV PATH /usr/local/java/bin:$PATH
    WORKDIR /usr/local/
    ADD jdk-8u131-linux-x64.tar.gz /usr/local
    ADD apache-tomcat-7.0.76.tar.gz /usr/local
    RUN mv jdk1.8.0_131 java && mv apache-tomcat-7.0.76 tomcat
    COPY abi.war /usr/local/tomcat/webapps
    EXPOSE 6060
    ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]

    jdk-8u131-linux-x64.tar.gz、apache-tomcat-7.0.76.tar.gz、abi.war、Dockerfile这几个均放在同一路径下。

  2. 构建镜像
    1. 使用当前目录的 Dockerfile 创建镜像

      docker build -t abi:v1 .

      -t:镜像的名字及标签

    2. 通过 -f Dockerfile 文件的位置

      docker build -f /opt/Dockerfile -t abi:v1 .

      上下文路径 ,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。

      Successfully built 5d113977d755
      Successfully tagged abi:v1

      构建过程最后出现上面显示,即代表镜像构建成功。

  3. 启动容器

    docker run -d -p 6060:8080 -v /opt/workdir/:/usr/local/workdir abi:v1

    -d:服务形式启动

    -p:端口映射,宿主机6060端口:docker容器8080端口,6060可随意修改成未被占用的端口

    -v:工作目录路径,宿主机/opt/workdir:容器/usr/local/workdir

  4. 访问服务器

    访问地址:http://ip:6060/abi,ip为宿主机ip地址,6060为宿主机映射的端口,abi为war包名称,根据实际修改。

  5. 工作目录及注册说明

    制作Dockerfile时,环境变量中的-Desen.abi.workdir=/usr/local/workdir是用来设置容器内部的产品工作目录,启动时再把工作目录映射到宿主机上。

    注册时通过注册界面导入注册申请文件,不要直接把注册申请文件放在宿主机工作目录下。

  6. 相关问题

    报错无法获取服务器硬件信息,此问题是由于产品在注册时需要获取ip及mac地址,但是容器内部没有相关命令,须在构建镜像时加上一行RUN yum install -y net-tools dmidecode

相关文档