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