ENV WORK_PATH /usr/local/open-web WORKDIR $WORK_PATH COPY ./target/web-1.0.0.jar $WORK_PATH/web-1.0.0.jar ENTRYPOINT ["java","-jar","/usr/local/open-web/web-1.0.0.jar"]

2.构建镜像命令

docker build -f ./Dockerfile -t open-web:1.0.0 .

3. 运行

docker run -p 5001:5001 --name open-web  -d open-web:1.0.0

4. Dockerfile基础命令

4.1 FROM

基础镜像 当前新镜像是基于那个镜像

4.2 RUN

镜像构建时需要运行的命令

4.3 EXPOSE

当前容器对外暴露出的端口

4.3 WORKDIR

指定在创建容器后,终端默认登录进来工作目录,一个落脚点

4.4 ENV

用来在构建镜像过程中设置环境变量

4.5 ADD

将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包

4.6 COPY

类似ADD,拷贝文件和目录到镜像中。将从构建上下文目录中<源路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置

4.7 VOLUME

容器数据卷,用于数据保存和持久化工作

4.8 CMD

指定一个容器启动时要运行的命令。 Dockerfile中可以有多个CMD命令,但只有最后一个生效,CMD会被docker run之后的参数替换

4.9 ENTRYPOINT

指定一个容器启动时要运行的命令,ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及参数

5.小案例

自己构建tomcat镜像

FROM ubuntu
ADD jdk-8u221-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.45.tar.gz /usr/local/
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_221
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$JRE_HOME/bin:$PATH
RUN echo export JAVA_HOME=$JAVA_HOME>>~/.bashrc
RUN echo export JRE_HOME=$JRE_HOME>>~/.bashrc
RUN echo export CLASSPATH=$CLASSPATH>>~/.bashrc
RUN echo export PATH=$PATH>>~/.bashrc
RUN /bin/bash -c "source ~/.bashrc"
EXPOSE 8080
CMD /usr/local/apache-tomcat-8.5.45/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.5.45/logs/catalina.out
复制代码
分类:
后端
  •