Dockerfile

前言

本文主要讲解了docker中Dockerfile的一些用法,学习Dockerfile就可以根据项目中需要的东西来构建自己的镜像,去创建容器来做一些工作。

Dockerfile指令

指令描述举例
FROM构建的新镜像是基于哪个基础镜像如:FROM centos:6(基础镜像名:版本号)
MAINTAINER镜像维护者姓名或者邮箱地址如:MAINTAINER keweizhou
RUN构建镜像时运行的Shell命令如:RUN [“yum”,“install”,“httpd”] (通过数组的形式) RUN yum install httpd(通过bash命令的形式)
CMD运行容器时执行的Shell命令如:CMD["-e","/start.sh"] CMD["/usr/sbin/sshd","-D"] CMD /usr/sbin/sshd -D
EXPOSE声明容器运行的服务端口例如:EXPOSE 80 443
ENV设置容器内环境变量例如:ENV MYSQL_ROOT_PASSWORD 123456
ADD拷贝文件或目录到镜像,如果是URL或者压缩包会自动下载或者自动解压例如:ADD <src>… <dest> ADD["<src>","<dest>"] ADD https://xx.yyy/html.tar.gz /var/www/html ADD html.tar.gz /var/www/html
COPY拷贝文件或者目录到镜像,用法同上例如:COPY ./start.sh /start.sh
ENTRYPOINT运行容器执行的Shell命令例如:ENTRYPOINT["/bin/bash","-c","/start.sh"] ENTRYPOINT/bin/bash -c ‘/start.sh’
VOLUME指定容器挂载点到宿主机自动生成的目录或其他容器例如:VOLUME [’’/var/lib/mysql]

如果是拷贝压缩包需要解压的话用ADD,单纯拷贝一个文件用COPY。还有USER、WORKDIR、HEALTHCHECK、ARG等命令不一一列举了。
注意:

  • CMD如果写多条的话,只有最后一条生效!所以一般一个Dockerfile里面只有一个这个命令,要么启动一个脚本,要么直接启动一个服务。

Build镜像命令

docker image build -t nginx:v1 -f /path/Dockerfile /path

其中:nginx代表repository,如果是私有仓库要指定仓库地址,v1表示Tag
-f指定文件名
查看nginx的配置文件:vi …/nginx/nginx.conf
两种启动服务的方式:

  1. 将服务包放在宿主机上,然后挂载到容器中
  2. 将服务包直接拷贝到镜像中,启动容器

构建JAVA网站环境镜像

Dockerfile

FROM centos:7
MAINTAINER keweizhou@123.com

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"]

构建镜像

创建容器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值