Dockerfile

一、dockerfile常用命令

指令描述
FROM构建的新镜像是基于哪个镜像;例如:From centos:6
MAINTAINER镜像维护者姓名或邮箱地址;例如:MAINTAINER wangmh
RUN构建镜像时运行的Shell命令;例如:RUN [“yum”,“install”,“httpd”],RUN yum install httpd
CMD运行容器时执行的Shell命令;例如:CMD ["-c","/start.sh"]
EXPOSE声明容器运行的服务器端口;例如:EXPOSE 80 443
ENV设置容器内环境变量;例如:ENV MYSQL_ROOT_PASSWORD
ADD拷贝文件或目录到镜像,如果是URL或压缩包会自动下载或自动解压;例如:
ADD ROOT.war /tomcat/webapps/
COPY拷贝文件或目录到镜像,不会自动解压;例如:COPY ./start.sh /start.sh
ENTRYPOINT运行容器时执行的Shell命令;例如:ENTRYPOINT /bin/bash -c ‘/start.sh’
VOLUME指定容器挂载点到宿主机自动生成的目录或其他容器;例如:VOLUME ["/var/lib/mysql"]
USER为RUN、CMD和ENTRYPOINT执行命令指定运行用户USER [:] or USER [:];例如:USER wangmh
WORKDIR为RUN、ENTRYPOINT、COPY和ADD设置工作目录;例如:WORKDIR /data
ARG在构建镜像时指定一些参数;例如:FROM centos:6 ARG user USER $user #docker build --build-arg user=wangmh Dockerfile .
HEALTHCHECK健康检查;HEALTHCHECK --interval=5m --timeout=3s \ CMD curl -f http://localhost/ || exit l

注:RUN、CMD、ENTRYPOINT指令区别

1.RUN在building时运行,可以写多条

2.CMD和ENTRYPOINT在运行容器时运行,只能写一条,如果多写,只生效最后一条

3.CMD在run时可以被COMMAND覆盖,ENTRYPOINT不会被COMMAND覆盖,但可以指定-entrypoint 覆盖

二、Build镜像命名

使用Dockerfile文件构建镜像

用法:

docker build [OPTIONS] PATH | URL | -

选项:

-t,--tag list  #镜像名称
-f,--file string #指定Dockerfile文件位置

三、构建java网站环境镜像

From centos:6
MAINTAINER wangmh
ADD jdk-8u45-linux-x64.tar.gz /usr/local
ENV ENV JAVA_HOME /usr/local/jdk1.8.0_45
ADD http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.0.45/bin/apachetomcat-8.0.45.tar.gz /usr/local
WORKDIR /usr/local/apache-tomcat-8.0.45
ENTRYPOINT ["bin/catalina.sh", "run"]
EXPOSE 8080

四、构建支持SSH服务的镜像

FROM centos:6
MAINTAINER wangmh
ENV ROOT_PASSWORD 123456
RUN yum install -y openssh-server
RUN echo $ROOT_PASSWORD |passwd --stdin root
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
CMD ["/usr/sbin/sshd", "-D"]
EXPOSE 22
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值