Docker10_1:DockerFile介绍及脚本指令

DockerFile介绍

dockerfile是用来构建docker镜像的文件,是一堆命令参数脚本。
dockerfile指令是忽略大小写的,建议用大写。

dockerhub查看dockerfile:
https://registry.hub.docker.com/_/centos?tab=description

在这里插入图片描述
点击就会跳转到GitHub

FROM scratch
ADD centos-7-x86_64-docker.tar.xz /

LABEL \
    org.label-schema.schema-version="1.0" \
    org.label-schema.name="CentOS Base Image" \
    org.label-schema.vendor="CentOS" \
    org.label-schema.license="GPLv2" \
    org.label-schema.build-date="20201113" \
    org.opencontainers.image.title="CentOS Base Image" \
    org.opencontainers.image.vendor="CentOS" \
    org.opencontainers.image.licenses="GPL-2.0-only" \
    org.opencontainers.image.created="2020-11-13 00:00:00+00:00"

CMD ["/bin/bash"]

这也是为什么官方的centos连clear命令都没有的原因,因为官方的是最简单的centos。

DockerFile指令

指令描述示例
FROM构建的新镜像是基于哪个镜像FROM centos:7
MAINTAINER镜像维护者姓名或邮箱地址,一般为姓名+邮箱的格式MAINTAINER name@emal
RUN构建镜像时运行的Shell命令RUN [“yum”,“install”,“nginx”]
RUN yum install nginx
CMD运行容器时执行的Shell命令,只有最后的指令会生效,会被docker run后面的指令替代CMD [“-c”,“/start.sh”]
CMD ["/usr/sbin/sshd","-D"]
CMD /usr/sbin/sshd -D
EXPOSE声明容器运行的服务端口EXPOSE 80 443
ENV设置容器内环境变量ENVMYSQL ROOT PASSWORD 123456
ADD拷贝文件或目录到镜像,如果是URL或压缩包会自动下载或自动解压ADD < src >… < dest >
ADD ["< src >",…"< dest >"]
ADD https://xxxcom/html.targz/var/www/html
ADD htmltarqz/var/www/html
COPY拷贝文件或目录到镜像,用法同上,类似ADD,拷贝文件的COPY ./startsh /startsh
ENTRYPOINT运行容器时执行的Shell命令,可以追加命令,追加在daockerfile ENTRYPOINT指令后的命令的后面ENTRYPOINT ["/bin/bash","-c",“/start.sh"]
ENTRYPOINT/bin/bash-c/startsh
VOLUME指定容器挂载点到宿主机自动生成的目录或其他容器,这种方式是匿名挂载的,需要docker inspect再去查看挂载的目录,不是很方便VOLUME["/var/lib/mysql"]
USER为RUN、CMD和ENTRYPOINT执行命令指定运行用户USER < user >[:< group >] or USER < UID>[:< GID >]USERops 443
WORKDIR为RUN、CMD、ENTRYPOINT、COPY和ADD设置工作目录WORKDIR /data
HEALTHCHECK健康检查HEALTHCHECK --interval=5m --timeout=3s --retries=3
CMD curl -f http://ocalhost/ll exit 1
ARG在构建镜像时指定一些参数FROM centos:7
ARG user #ARGuser=root
USER $user # docker build --build-arg user=ops DockerFile
OUTBUILD当构建一个被继承 DockerFile 这个时候就会运行OUTBUILD的指令,触发指令FROM centos

DockerFile构建步骤

  1. 编写dockerfile文件
  2. docker build构建成为一个镜像
  3. docker run运行容器
  4. docker push发布镜像(DockerHub、阿里云等)

基础知识

  1. 每个保留关键字(指令)都是大写的
  2. 执行顺序从上到下
  3. #表示注释
  4. 每一个指令都会创造一个新的镜像层,并提交

将dockerfile打成镜像

docker build -f mydockerfile-centos -t mycentos:0.1 .

# -f dockerfile路径,官方命名Dokcerfile,如果你也是,那么就不需要加-f去指定文件名了
# -t 指定镜像版本,TAG
# 结尾的.别少了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值