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

Docker上部署数据治理平台

制作Dockerfile

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

FROM centos:7
ENV JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF8 -Xmx2048m -Xms1025m -XX:MaxMetaspaceSize=512m -XX:MetaspaceSize=256m -Duser.timezone=Asia/Shanghai
-Desen.edg.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-8.5.12.tar.gz /usr/local
RUN mv jdk1.8.0_131 java && mv apache-tomcat-8.5.12 tomcat
COPY sjzl.war /usr/local/tomcat/webapps
EXPOSE 6060
ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]

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

构建镜像

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

    docker build -t sjzl:v1 .

    -t:镜像的名字及标签

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

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

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

    Successfully built 5d113977d755
    Successfully tagged sjzl:v1

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

启动容器

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

-d:服务形式启动

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

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

访问服务器

访问地址:http://ip:6060/sjzl

ip为宿主机ip地址

6060为宿主机映射的端口

sjzl为war包名称

根据实际修改

工作目录及注册说明

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

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

相关问题

报错无法获取服务器硬件信息。

此问题是由于产品在注册时需要获取硬件信息,但是容器内部没有相关命令,须在构建镜像时加上一行

RUN yum install -y net-tools dmidecode

相关文档