Docker自定义镜像Dockerfile

Docker 自定义镜像

1. 认识Dockerfile文件
	Dockerfile用于创建 Docker 镜像,Dockerfile 文件是由一行行命令
语句组成,基于这些命令可以构建一个镜像。案例如下:
FROM XXX/jdk:8
MAINTAINER docker_user
ENV JAVA_HOME /usr/local/java
ADD apache-tomcat-8.0.32.tar.gz /usr/local/
RUN mv apache-tomcat-8.0.32 tomcat8
EXPOSE 8080
RUN chmod u+x /usr/local/tomcat8/bin/*.sh
CMD /usr/local/tomcat8/bin/catalina.sh start 
2. Dockerfile 基本结构
  • 基础镜像信息
  • 维护者信息(可有可无)
  • 镜像操作指令
  • 容器启动时执行信息
3. Dockerfile指令
  • FROM

     	定制的镜像都是基于此镜像。
     	格式为 FROM <image> 或 FROM <image>:<tag>
     Dockerfile文件的第一条指令必须为FROM指令,并且,如果在同一个
     Dockerfile中创建多个镜像时,可以使用多个FROM指令(每个镜像一次);
    
  • MAINTAINER

      	格式为 MAINTAINER <name> ,指定维护者信息
    
  • ENV

      	格式为 ENV <key><value>,指定一个环境变量,会被后续RUN指令
      使用,并在容器运行时保持;
    
  • ADD

      	格式为 ADD <src><dest>;
      	复制指定的<src>到容器中的<dest>
    
  • EXPOSE

      	格式为 EXPOSE <port> [<port>...]
      	告诉Docker服务器容器暴漏的端口号,供互联系统使用。在启动容器
      时需要通过-p映射端口,Docker主机会自动分配一个端口转发到指定的
      端口。
    
  • RUN
    格式为 RUN
    RUN指令将在当前镜像基础上执行指定命令,并提交为新的镜像,
    当命令较长时可通过 \ 来换行。

  • CMD

      	指定启动容器时执行的命令,每个Dockerfile只能有一条 CMD 命令。
      如果指定了多条命令,只有最后一条会被执行。如果用户启动容器时
      指定了运行的命令,则会覆盖掉CMD指定的命令。
    
4. Dockerfile自定义镜像
4.1 自定义JDK镜像

Dockerfile文件内容为

		FROM centos:latest
		MAINTAINER Hugo
		ADD jdk-8u271-linux-x64.tar.gz /usr/local
		ENV JAVA_HOME /usr/local/jdk1.8.0_271
		ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
		ENV PATH $PATH:$JAVA_HOME/bin
		CMD java -version
	
	构建镜像 docker build -t chacker_jjdk1.8.0_271 .   
		注意 最后的点不能少,表示使用当前目录下的Dockerfile文件
	运行容器 docker run -dit 容器ID /bin/bash

注意 一定要使用 -dit 容器ID /bin/bash这样的命令启动,否则容器启动后,检测到没有运行的程序,会自动退出。

4.2 自定义Tomcat镜像

Dockerfile文件内容为

		FROM chacker_jdk1.8.0_271
		MAINTAINER Hugo
		ADD apache-tomcat-8.5.61.tar.gz /usr/local
		ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.61
		ENV PATH $PATH:$CATALINA_HOME/lib:$CATALINA_HOME/bin
		EXPOSE 8080
		CMD /usr/local/apache-tomcat-8.5.61/bin/catalina.sh run
	
		构建镜像 docker build -t chacker_tomcat-8.5.61 .
		运行镜像 docker run -d -p 8088:8080 10f5eea482fd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值