Dockerfile例子

ADD与COPY区别:1 解压缩文件 2 从远端获取url资源

LABLE: 可以为生成的镜像添加元数据标签信息,这些信息可以用来辅助过滤出特定镜像,docker inspect 镜像ID

Jre:运行java程序所需的环境(java runtime environment)

Jdk:编译java程序所需工具包(java environment kit)

Jdk 的dockerfile
FROM centos:7.2.1511
ADD jdk1.7.0_09.tar.gz /usr/local
ENV JAVA_HOME /usr/local/jdk1.7.0_09
ENV CLASSPATH .:$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
RUN rm -rf /etc/localtime && cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN chmod +x /usr/local/jdk1.7.0_09/jre/bin/java
CMD java -jar *.jar
FROM jdk:1
COPY tomcat8.5.2 /usr/local/tomcat
ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $PATH:$CATALINA_HOME/bin
RUN chmod +x /usr/local/jdk1.7.0_09/jre/bin/java && chmod +x /usr/local/tomcat/bin/*
RUN rm -rf /etc/localtime && cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#添加时区问题
COPY $(PWD)/Shanghai /etc/localtime
EXPOSE 8080
CMD ["catalina.sh","run"]
FROM 192.168.0.29:5000/jdk:7
ADD test/pinpoint-agent-1.5.2.tar.gz /usr/local
COPY test/jar.sh /usr/local/sbinENV
AGENT_VERSION 1.5.2
RUN chmod +x /usr/local/sbin/jar.sh
FROM 192.168.0.29:5000/tomcat:7-jre7-ths
ADD test/pinpoint-agent-1.5.2.tar.gz /usr/local/tomcat
COPY test/pp-agent.sh /usr/local/sbin
RUN chmod +x /usr/local/sbin/pp-agent.sh
CMD [ "pp-agent.sh" ]
FROM centos:7
RUN yum install -y epel-release && yum install -y nginx && rm -rf /var/lib/apt/lists/* && echo "daemon off;" >>/etc/nginx/nginx.conf
RUN echo "Asia/Shanghai" > /etc/timezone
EXPOSE 80
CMD ["/usr/sbin/nginx"]

多阶段构建docker镜像(2种方法)

FROM mcr.microsoft.com/dotnet/core/sdk:3.0 as builder
WORKDIR /usr/local/zmrestapi-1.0/ZhuMuRestApi/ZhuMuRestApi_v3

ADD zmrestapi-1.0.tar.gz /usr/local/

RUN dotnet publish -c release -o /usr/local/zmrestapi-1.0/ZhuMuRestApi/ZhuMuRestApi_v3/DLL 

#其中的 COPY 命令通过指定 --from=builder 参数,把前一阶段构建的产物拷贝到了当前的镜像中
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
WORKDIR /usr/local/zmrestapi-1.0/ZhuMuRestApi/ZhuMuRestApi_v3/DLL
COPY --from=builder /usr/local/zmrestapi-1.0/ZhuMuRestApi/ZhuMuRestApi_v3/DLL ./
ENTRYPOINT ["dotnet", "ZhuMuRestApi_v3.dll"]

FROM mcr.microsoft.com/dotnet/core/sdk:3.0
WORKDIR /usr/local/zmrestapi-1.0/ZhuMuRestApi/ZhuMuRestApi_v3

ADD zmrestapi-1.0.tar.gz /usr/local/

RUN dotnet publish -c release -o /usr/local/zmrestapi-1.0/ZhuMuRestApi/ZhuMuRestApi_v3/DLL 

#其中的 COPY 命令通过指定 --from=0 参数,把前一阶段构建的产物拷贝到了当前的镜像中
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
WORKDIR /usr/local/zmrestapi-1.0/ZhuMuRestApi/ZhuMuRestApi_v3/DLL
COPY --from=0 /usr/local/zmrestapi-1.0/ZhuMuRestApi/ZhuMuRestApi_v3/DLL ./
ENTRYPOINT ["dotnet", "ZhuMuRestApi_v3.dll"]

健康检查

FROM registry.cn-beijing.aliyuncs.com/zm_zhumu/node:pm2
COPY edu-mobile /opt/edu-mobile
EXPOSE 3002
WORKDIR /opt/edu-mobile
HEALTHCHECK --interval=5s --timeout=5s --retries=12 CMD  curl --silent --fail localhost:3002/_cluster/health || exit 0
CMD ["/usr/local/bin/pm2","start","-i","max","--name","edu-mobile","bin/www","--no-daemon"]

supervisord

FROM ubuntu:16.04 
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list && apt-get update && apt-get install -y openssh-server supervisor && mkdir -p /var/run/sshd 
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
EXPOSE 22
CMD ["/usr/bin/supervisord"]


supervisord.conf 
[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D

你可能感兴趣的:(docker)