文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何用dockerfile指令构建docker镜像

2023-06-30 07:36

关注

本篇内容主要讲解“如何用dockerfile指令构建docker镜像”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用dockerfile指令构建docker镜像”吧!

初识Dockerfile

Dockerfile就是用来构建docker镜像的构建文件!命令脚本!

通过这个脚本可以生成镜像,镜像是一层层的,脚本是一行行的命令,每行命令都是一层

dockerfile是面向开发的,我们以后要发布项目,作镜像,就需要编写dockerfile文件,这个文件十分简单。

Dockerfile镜像之间成为了企业交付的标准,必须掌握!

编写一个自己的docker 镜像:

编写Dockerfile文件:

#创建一个dockerfile文件,名字可以随机,建议Dockerfile#文件中的内容:指令(大写) 参数 #实例测试:#创建目录存放dockerfile文件的目录:[root@localhost ~]# mkdir docker_test #进入目录创建dockerfile文件:[root@localhost ~]# mkdir docker_test[root@localhost ~]# cd docker_test/[root@localhost docker_test]# touch dockerfile #编写dockerfile文件,在文件中写入dockerfile指令:[root@localhost docker_test]# vim dockerfileFROM centosVOLUME ["volume01","volume02"]CMD echo "----end----"CMD /bin/bash

将Dockerfile文件转为镜像:

#使用docker build . 命令将dockerfile文件转为镜像 [root@localhost docker_test]# docker build -f /root/docker_test/dockerfile -t hzw/centos .Sending build context to Docker daemon  2.048kB Step 1/4 : FROM centos ---> 5d0da3dc9764Step 2/4 : VOLUME ["volume01","volume02"] ---> Running in d4b23ae86aceRemoving intermediate container d4b23ae86ace ---> 8f39792fbef7Step 3/4 : CMD echo "----end----" ---> Running in 1bb4751f04efRemoving intermediate container 1bb4751f04ef ---> 2e2bb5e2a502Step 4/4 : CMD /bin/bash ---> Running in 82a0b5905405Removing intermediate container 82a0b5905405 ---> 39a1fd86fd73Successfully built 39a1fd86fd73Successfully tagged hzw/centos:latest #由此可以发现docker创建镜像也是一层层创建的。每个命令都是镜像的一层。

查看自己构建的docker镜像

[root@localhost docker_test]# docker imagesREPOSITORY            TAG       IMAGE ID       CREATED         SIZEhzw/centos            latest    39a1fd86fd73   2 minutes ago   231MB

使用自己构建的docker镜像生成容器:

[root@localhost docker_test]# docker run -it hzw/centos /bin/bash[root@f62a714bb306 /]# lsbin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  volume01  volume02 #可以看见我们构建的镜像也是能正常进去使用的,并且我们在dockerfile写指令挂载的目录也在这个容器里。

DockerFile

dockerfile时用来构建docker镜像文件!命令参数脚本!

构建步骤:

编写一个dockerfile文件

docker build . 构建称为一个镜像

docker run 运行镜像

docker push 发布镜像(DockerHub、阿里云镜像仓库)

Dockerfile指令:

FROM    #指定基础镜像,一切从这里开始构建 MAINTAINER    #镜像是谁写的,姓名+邮箱 RUN    #镜像构建的时候需要运行的命令 ADD    #步骤:tomcat镜像,这个tomcat压缩包!添加内容 WORKDIR    #镜像的工作目录 VOLUME    #挂载的目录 EXPOST    #暴露端口配置 CMD    #指定这个容器启动时候要运行的命令,只有最后一个会生效,可被替代 ENTRYPOINT    #指定这个容器其董事会要运行的命令,可以追加命令 ONBUILD    #当构建一个被继承dockerfile,这个时候就会运行ONBUILD的指令。是一个触发指令 COPY    #类似ADD,将我们文件拷贝到镜像 ENV    #构建的时候设置环境变量!

如何用dockerfile指令构建docker镜像

docker build . 命令

构建好dockerfile文件后,我们就用docker build命令将文件构建成镜像。

#命令使用方法:docker build -f dockerfile文件路径 -t 取个镜像名 . #参数详解: -f  dockerfile的文件路径,可以写绝对路径,也可以写相对路径 -t   给构建的镜像取个名字,名字格式: 名字:标签 .    构建上下文的路径 必须写

查看镜像是如何生成的

docker history 镜像ID

实操训练:Dockerfile构建Nginx镜像: 编写Dockerfile制作镜像,生成镜像名为my_build:Nginx1。首先创建目录dockerfile-nginx1,保存Dockerfile文件。具体要求如下:

(1)基于镜像centos:7

(2)安装Nginx

       a.安装相关依赖

       b.下载并解压Nginx

(3)工作目录设为:nginx-1.9.7

(4)编译安装Nginx

(5)对外暴露80,443端口

(6)修改Nginx配置文件,以非daemon方式启动

(7)复制服务启动脚本并设置权限

(8)启动容器时执行脚本run.sh

run.sh内容如下所示:

开始操作:

创建dockerfile-nginx1文件夹,进入该文件夹,编写Dockerfile文件

mkdir dockerfile-nginx1cd dockerfile-nginx1/vim Dockerfile

如何用dockerfile指令构建docker镜像

编写Dockerfile文件内容:

#该文件时基于centos7镜像为基础创建的FROM centos:7   #下载nginx依赖源RUN yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel     #下载wgetRUN yum install -y wget    #下载nginxRUN wget http://nginx.org/download/nginx-1.9.7.tar.gz    #解压nginxRUN tar -zxvf nginx-1.9.7.tar.gz     #执行编译命令,通过--prefix=安装目录,指定nginx安装目录RUN ./configure --prefix=/usr/localinx && make && make install     #设置工作目录WORKDIR nginx-1.9.7     #暴露端口80和443EXPOSE 80EXPOSE 443 #将虚拟机文件复制到容器里ADD run.sh /run.sh #给run.sh授予可执行权限RUN chmod 775 /run.sh #启动容器后执行run.sh脚本CMD ["/run.sh"]

如何用dockerfile指令构建docker镜像

在该文件夹里再编写一个run.sh

vim run.sh run.sh里的内容:#!/bin/bash/usr/local/nginx/sbin/nginx

如何用dockerfile指令构建docker镜像

docker build 构建镜像

docker build -t my_build:nginx1 .

如何用dockerfile指令构建docker镜像

 docker images查看镜像:

如何用dockerfile指令构建docker镜像

使用该镜像构建容器:

如何用dockerfile指令构建docker镜像

可以看到镜像成功启动,东西也下载安装好了,工作目录设置好了,文件也复制到容器里了

到此,相信大家对“如何用dockerfile指令构建docker镜像”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯