docker基础(05):构建镜像

本系列汇总,请查看这里https://www.cnblogs.com/uncleyong/p/8894133.html

创建镜像的方式

  更新镜像:使用docker commit命令,详见:https://www.cnblogs.com/uncleyong/p/18062427

  构建镜像:使用docker build命令,需要创建Dockerfile文件

Dockerfile

Dockerfile是用来构建Docker镜像的文件,是由一系列指令和参数构成的脚本,从FROM命令开始,紧接着各种命令、参数等,最终会生成一个新的镜像;

第一条指令必须是FROM,指定Base Image基础镜像,指令按从上往下的顺序,依次执行,每条指令都会创建一个新的镜像层并提交;

常用指令

FROM:指定基础镜像,即当前新镜像是基于哪个镜像的
MAINTAINER:指定作者
RUN:指定镜像构建过程中要运行的命令
ENV:设置环境变量
WORKDIR:指定默认的工作目录,即进入容器后默认进入的目录
VOLUME:创建挂载点,也称容器数据卷,用于数据共享和持久化
CMD:指定容器启动时要运行的命令,与RUN不同的是, 这些命令不是在镜像构建过程中执行的
ENTRYPOINT:指定容器启动时要运行的命令
COPY:拷贝文件/目录到镜像中
ADD:拷贝文件到镜像中,且会自动解压缩
EXPOSE:指定对外暴露的端口

我们来看下官方tomcat的Dockerfile是如何写的

指定基础镜像、环境变量

暴露端口8080

运行容器,就把tomcat启动起来

示例:自定义tomcat镜像

有时候,官方提供的镜像不一定满足我们的需求,我们想用自己期望的jdk、tomcat版本,那么,我们可以基于一个精简版centos来制作

创建Dockerfile

内容:

 FROM centos
 MAINTAINER qzcsbj

 # 拷贝文件
 ADD jdk-8u211-linux-x64.tar.gz /usr/local
 ADD apache-tomcat-9.0.19.tar.gz /usr/local

 # 配置环境变量
 ENV JAVA_HOME /usr/local/jdk1.8.0_211
 ENV CLASSPATH .:$JAVA_HOME/lib
 ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.19
 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

 WORKDIR $CATALINA_HOME

 EXPOSE 8080

 # 镜像运行容器就把tomcat启动起来
 CMD ["catalina.sh", "run"]

构建镜像

查看镜像

运行容器

docker run \
--name qzcsbj_tomcat \
-p 8181:8080 \
-d qzcsbj/tomcat:1.0

访问:192.168.0.105:8181

示例:自定义jmeter可视化监控平台镜像qzcsbj7-influxdb_grafana

详见:https://www.cnblogs.com/uncleyong/p/14009804.html

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值