Docker容器快速入门(三)Dockerfile

dockerfile 构建镜像

相当于自己创建容器,在里面运行自己所需要的应用,通过复制自己应用到容器里面,然后通过指定命令去运行,最后在宿主机通过docker build 创建镜像,docker run启动容器,就可以启动容器里面所要运行的命令

组成部分

 

FROM  基础镜像信息

MAINTAINER   维护者信息

RUN、COPY、ADD、EXPOSE、WORKDIR、ONBUILD、USER、VOLUME等     镜像操作指令

CMD、ENTRYPOINT     容器启动时执行指令

 

如果是做Java程序的话一般都会以jdk位基础镜像

 

新建一个文件  vim Dockerfile  

FROM java:8-jre   前提这个镜像一定存在与你的docker images 里面
MAINTAINER steven
EXPOSE 8088 暴露镜像的端口供主机做映射
ADD ./jar/admin-2.0.0.jar /app/    把本地你自己要执行的jar包复制到容器的/app目录下
CMD['java -jar /app/admin-2.0.0.jar']

保存

然后在外面执行命令docker build --tag myjar:1.1 .  (这里有个英文的句号,表示当前路径下创建镜像 ,--tag镜像的名字及标签)

最后通过docker run 启动容器所需要的镜像即可。

 

 

其他命令

RUN

在新镜像内部执行的命令,比如安装一些软件、配置一些基础环境,可使用\来换行

如:

RUN echo 'hello docker!' \
    > /usr/local/file.txt

 

EXPOSE

暴露镜像的端口供主机做映射,启动镜像时,使用-P参数来讲镜像端口与宿主机的随机端口做映射。使用方式(可指定多个):

EXPOSE 8080 
EXPOSE 8081

WORKDIR

在构建镜像时,指定镜像的工作目录,之后的命令都是基于此工作目录,如果不存在,则会创建目录。如

WORKDIR /usr/local
WORKDIR webservice
RUN echo 'hello docker' > text.txt

CMD

容器启动时需要执行的命令,如:

CMD /bin/bash

同样可以使用exec语法,如

CMD ["/bin/bash"]

当有多个CMD的时候,只有最后一个生效。

 

 

ENTRYPOINT

作用和用法和CMD一模一样

区别

  • CMD的命令会被 docker run 的命令覆盖而ENTRYPOINT不会·

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值