首页  

dockerfile 写法     所属分类 docker 浏览量 614
Dockerfile
每一条指令构建一层 


# 基于centos镜像
FROM centos

#维护人信息
MAINTAINER codefun007.xyz

# 安装httpd软件包
RUN yum -y update
RUN yum -y install httpd

# 开启80端口
EXPOSE 80

# 复制文件
ADD index.html /var/www/html/index.html

# 复制脚本并修改权限
ADD run.sh /run.sh
RUN chmod 775 /run.sh

# 启动容器时执行的脚本文件
CMD ["/run.sh"]



Dockerfile 分为四个部分 基础镜像信息 维护者信息 镜像操作指令 容器启动时执行的指令 每行一条指令,可带多个参数 # 行注释
常用指令 FROM MAINTAINER RUN ADD ENV WORKDIR VOLUME EXPOSE CMD ENTRYPOINT MAINTAINER 不推荐使用,更推荐使用LABEL来指定镜像作者 LABEL maintainer="codefun007.xyz" CMD 启动容器时执行的Shell命令 CMD ["-C", "/start.sh"] CMD ["/usr/sbin/sshd", "-D"] CMD /usr/sbin/sshd -D EXPOSE 声明容器运行的服务端口 EXPOSE 80 443 ENV 设置环境变量 ENV MYSQL_ROOT_PASSWORD 123456 ENV JAVA_HOME /usr/local/jdk1.8.0_45 ADD 拷贝文件或目录到镜像中 ADD html.tar.gz /var/www/html ADD https://xxx.com/html.tar.gz /var/www/html 如果是URL或压缩包,会自动下载 解压 COPY 拷贝文件或目录到镜像中,用法同ADD,只是不支持自动下载和解压 COPY ./start.sh /start.sh ENTRYPOINT 启动容器时执行的Shell命令,同CMD类似,只是由ENTRYPOINT启动的程序不会被docker run命令行指定的参数所覆盖 这些命令行参数会被当作参数传递给ENTRYPOINT指定指定的程序 ENTRYPOINT ["/bin/bash", "-C", "/start.sh"] ENTRYPOINT /bin/bash -C '/start.sh' Dockerfile 中可以存在多个ENTRYPOINT指令,仅最后一个生效 VOLUME VOLUME ["/var/lib/mysql"] 一般不用 一般 docker run -v USER 为 RUN CMD ENTRYPOINT 执行Shell命令指定运行用户 WORKDIR 为 RUN CMD ENTRYPOINT COPY ADD 设置工作目录 WORKDIR /data ARG 构建镜像时 指定一些参数 FROM java:8 # FROM openjdk:8u312-slim ARG JAR_FILE=target/springboot-docker-demo-1.0.jar ADD ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"]
FROM centos:7 MAINTANIER codefun007.xyz ADD jdk-8u45-linux-x64.tar.gz /usr/local ENV JAVA_HOME /usr/local/jdk1.8.0_45 ADD apache-tomcat-8.0.46.tar.gz /usr/local COPY server.xml /usr/local/apache-tomcat-8.0.46/conf RUN rm -f /usr/local/*.tar.gz WORKDIR /usr/local/apache-tomcat-8.0.46 EXPOSE 8080 ENTRYPOINT ["./bin/catalina.sh", "run"] docker build -t tomcat:v1 . docker run -itd --name=tomcate -p 8080:8080 -v /app/webapps/:/usr/local/apache-tomcat-8.0.46/webapps/ tomcat:v1
python http server docker 镜像制作 使用Dockerfile定制镜像 使用 Dockerfile 构建 gohttphello server 镜像 springboot应用打docker镜像 java8 docker 镜像大小

上一篇     下一篇
springboot应用打docker镜像

java8 docker 镜像大小

springboot 应用 docker 挂载外部配置文件

java面试题2022

Docker Java应用例子

mac 文件属性 @ 后缀 无权限问题