美文网首页
Dockerfile

Dockerfile

作者: fdsun | 来源:发表于2021-01-26 12:25 被阅读0次

用Dockerfile来构建docker的image

1.FROM

指定基础镜像,比如FROM ubuntu:14.04

FROM ubuntu:14.04
  1. RUN
    在镜像内部执行一些命令,比如安装软件,配置环境等,换行可以使用""
RUN groupadd -r mysql && useradd -r -g mysql mysql
  1. ENV

设置变量的值,ENV MYSQL_MAJOR 5.7,可以通过docker run --e key=value修改,后面可以直接使用${MYSQL_MAJOR}

ENV MYSQL_MAJOR 5.7
  1. LABEL

设置镜像标签

LABEL email="xxxxx@163.com"
LABEL name="xxxxx"
  1. VOLUME

指定数据的挂在目录

VOLUME /var/lib/mysql
  1. COPY

将主机的文件复制到镜像内,如果目录不存在,会自动创建所需要的目录,注意只是复制,不会提取和解压

COPY docker-entrypoint.sh /usr/local/bin/
  1. ADD

将主机的文件复制到镜像内,和COPY类似,只是ADD会对压缩文件提取和解压

ADD application.yml /etc/test/
  1. WORKDIR
WORKDIR /usr/local
WORKDIR tomcat
RUN touch test.txt

会在/usr/local/tomcat下创建test.txt文件

WORKDIR /root
ADD app.yml test/

会在/root/test下多出一个app.yml文件

  1. CMD

容器启动的时候默认会执行的命令,若有多个CMD命令,则最后一个生效

CMD ["mysqld"]
或
CMD mysqld
  1. ENTRYPOINT

和CMD的使用类似

ENTRYPOINT ["docker-entrypoint.sh"]

和CMD的不同:

docker run执行时,会覆盖CMD的命令,而ENTRYPOINT不会

  1. EXPOSE

指定镜像要暴露的端口,启动镜像时,可以使用-p将该端口映射给宿主机

EXPOSE 3306

相关文章

网友评论

      本文标题:Dockerfile

      本文链接:https://www.haomeiwen.com/subject/igdgzktx.html