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这几个均放在同一路径下。
构建镜像
- 使用当前目录的 Dockerfile 创建镜像
-t:镜像的名字及标签
- 通过 -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