千家信息网

如何用dockerfile指令构建docker镜像

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇内容主要讲解"如何用dockerfile指令构建docker镜像",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何用dockerfile指令构建doc
千家信息网最后更新 2025年01月20日如何用dockerfile指令构建docker镜像

本篇内容主要讲解"如何用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镜像文件!命令参数脚本!

构建步骤:

1、编写一个dockerfile文件

2、docker build . 构建称为一个镜像

3、docker run 运行镜像

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

Dockerfile指令:

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

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文件内容:

#该文件时基于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"]

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

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

docker build 构建镜像

docker build -t my_build:nginx1 .

docker images查看镜像:

使用该镜像构建容器:

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

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

镜像 文件 命令 目录 指令 容器 内容 脚本 路径 运行 名字 时候 工作 生成 参数 文件夹 端口 基础 方法 权限 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发公司的swot分析 服务器装win7后怎么设置调速 网络安全卫星定位 网络安全手抄报图片很难 信创软件开发技术线路 网络安全基础教程与实训d3 渤海银行 软件开发 服务器与数据库区别 魔兽世界9.05服务器人口查询 数据库连接方式怎么查 赣州网络技术推广 网络安全 九个方面 公安 数据库查询重复内容返回一行 武汉大学国家网络安全学院 导师 绍兴创新网络技术推荐咨询 查看数据库表的命令是什么 潮汕安卓软件开发有用吗 网络安全自我教育ppt 服务器安全狗驱动冲突 甲骨文公司出的数据库软件 服务器跑wamp是否安全 用户关注数据库设计简书 计算机网络技术专接本考多少 万科邮件服务器 网络安全手抄报大全写什么字 为什么需要网络安全 泰拉瑞亚1.4国际版服务器推荐 怎样学软件开发编程 数据库的添加和修改 公安信息化网络安全管理要点
0