Dockerfile

Dockerfile是一个文本文件,用于自动化构建Docker镜像。内容包括基础镜像信息、作者信息、镜像操作指令(如FROM、RUN、CMD、EXPOSE等)。创建镜像时,使用docker build命令,通过-t指定镜像标签。Dockerfile的指令如FROM用于指定基础镜像,CMD定义启动命令,EXPOSE暴露端口,RUN执行命令,而VOLUME创建挂载点。此外,还介绍了如何基于Dockerfile创建Apache镜像。
摘要由CSDN通过智能技术生成

Dockerfile基本结构

Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 快速创建自定义镜像。

Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行。

Docker分为四部分:

  • 基础镜像信息
  • 维护者信息
  • 镜像操作指令
  • 容器启动时默认要执行的指令

 用阿里云里面的源

例如:

[root@localhost ~]# mkdir nginx
[root@localhost ~]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  nginx     Public     Videos
Desktop          Downloads  Music                 Pictures  Templates
[root@localhost ~]# cd nginx/
[root@localhost nginx]# touch Dockerfile
[root@localhost nginx]# ls
Dockerfile
[root@localhost nginx]# vim Dockerfile
FROM ubuntu    # 第一行必须指定基于的基础镜像

LABEL MANTAINER "ltt 910669083@qq.com"      # 维护者信息

RUN echo "deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse" >> /etc/apt/sources.list && \
    echo "deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse" >> /etc/apt/sources.list && \
    echo "deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse" >> /etc/apt/sources.list && \
    echo "deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse" >> /etc/apt/sources.list && \
    echo "deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse" >> /etc/apt/sources.list && \
    echo "deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse" >> /etc/apt/sources.list && \
    echo "deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse" >> /etc/apt/sources.list && \
    echo "deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse" >> /etc/apt/sources.list && \
    apt-get update && apt-get -y install nginx && \
    echo "\ndaemon off;" >> /etc/nginx/nginx.conf           # 镜像操作指令

CMD /usr/sbin/nginx            # 容器启动时默认要执行的指令

其中,一开始必须指明所基于的镜像名称,接下来一般会说明维护者信息。

后面则是镜像操作指令,例如RUN指令,RUN指令将对镜像执行跟随的命令。每运行一条RUN指令,镜像添加新的一层,并提交。

最后是CMD指令来指定运行容器时的操作指令。

创建镜像

编写完成Dockerfile后,可以通过docker build命令来创建镜像。

基本的格式为docker build [选项] 路径,该命令将读取指定路径下(包括子目录)的Dockerfile,并将该路径下所有内容发送给Docker服务端,由服务端来创建镜像。因此一般建议放置Dockerfile的目录为空目录。

另外,可以通过 .dockerignore 文件(每一行添加一条匹配模式)来让Docker忽略路径下的目录和文件。

要指定镜像的标签信息,可以通过-t选项。

例如,指定Dockerfile所在路径为/tmp/docker_builder/,并且希望生成镜像标签为build_repo/first_image,可以使用下面的命令:

docker build -t build_repo/first_image /tmp/docker_builder/

[root@localhost nginx]# docker build -t nginx:v0.1 .
Successfully built b71716b4dc0f
Successfully tagged nginx:v0.1     //看到这个代表成功了
[root@localhost nginx]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED              SIZE
nginx        v0.1      b71716b4dc0f   About a minute ago   227MB
nginx        latest    605c77e624dd   4 months ago         141MB
httpd        latest    dabbfbe0c57b   4 months ago         144MB
ubuntu       latest    ba6acccedd29   6 months ago         72.8MB

指令

指令的一般格式为INSTRUCTION arguments(指令加参数),指令包括:

  • FROM(基础镜像的来源)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值