Administrator
发布于 2021-07-15 / 9 阅读
0
0

7、DockerFile文件编写

  • Docker File 语法

# Base images 基础镜像
FROM centos

#MAINTAINER 维护者信息
MAINTAINER lorenwe 

#ENV 设置环境变量
ENV PATH /usr/local/nginx/sbin:$PATH

#ADD  文件放在当前目录下,拷过去会自动解压
ADD nginx-1.13.7.tar.gz /tmp/

录下,拷过去会自动解压
ADD nginx-1.13.7.tar.gz /tmp/

#RUN 执行以下命令
RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 \
    && yum update -y \
    && yum install -y vim less wget curl gcc automake autoconf libtool make gcc-c++ zlib zlib-devel openssl openssl-devel perl perl-devel pcre pcre-devel libxslt libxslt-devel \
    && yum clean all \
    && rm -rf /usr/local/src/*
RUN useradd -s /sbin/nologin -M www

#WORKDIR 相当于cd
WORKDIR /tmp/nginx-1.13.7

RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre && make && make install

RUN cd / && rm -rf /tmp/

COPY nginx.conf /usr/local/nginx/conf/

#EXPOSE 映射端口
EXPOSE 80 443

#ENTRYPOINT 运行以下命令
ENTRYPOINT ["nginx"]

#CMD 运行以下命令
CMD ["-h"]复制代码

  • docker hub中99%的镜像都是由scratch基础镜像构建的

FROM scratch
ADD centos-7.7-x86_64-docker.tar.xz /

LABEL org.label-schema.schema-version="1.0" \
    org.label-schema.name="CentOS Base Image" \
    org.label-schema.vendor="CentOS" \
    org.label-schema.license="GPLv2" \
    org.label-schema.build-date="20191024"

CMD ["/bin/bash"]

  • 编写自己的dockerfile文件

FROM centos:7.7.1908			# 基础镜像
MAINTAINER qin<youxiang@qq.com>		# 作者一般作者名+邮箱

ENV MYPATH /usr/local			# 环境配置位置
WORKDIR $MYPATH				# 工作目录

RUN yum -y install vim			# 执行安装命令
RUN yum -y install net-tools

EXPOSE 80					# 镜像对外暴露的端口为80

CMD echo $MYPATH				# 后台打印该镜像的环境配置路径
CMD echo "---end---"
CMD /bin/bash
  • 执行docker build 构建镜像

 docker build -f /home/docker/dockerfile/myDockerFile -t qin/centos:7.7.1908 .

  • 查看docker 生成过程历史

 docker history (IMAGE ID)


  • 生成tomcat镜像

  • 准备好tomcat压缩包、jdk压缩包

  • 编写dockerfile文件

FROM centos:7.7.1908

MAINTAINER doubitv<doubitv@qq.com>

COPY readme.txt /user/local/readme.txt

ADD jdk-8u51-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.70.tar.gz /usr/local/

RUN yum -y install vim


WORKDIR /usr/local

ENV JAVA_HOME /usr/local/jdk1.8.0_51
ENV PATH $JAVA_HOME/bin:$PATH
ENV CLASSPATH $JAVA_HOME/lib
 
EXPOSE 8080

CMD source /etc/profile
CMD /usr/local/apache-tomcat-8.5.70/bin/startup.sh && tail -F /usr/local/apache-tomcat-8.5.70/bin/logs/catalina.out
  • 在dockerfile所在目录构建镜像

 docker build -t diytomcat .

  • 运行mytomcat镜像

 docker run -d -p 9090:8080 --name mytomcat -v /home/docker/build/tomcat/test:/url/local/apache-tomcat-8.5.70/webapps/test -v /home/docker/build/tomcat/tomcatlogs/:/apache-tomcat-8.5.70/logs diytomcat


评论