docker使用Dockerfile构建镜像

2023-05-16

    docker获取镜像,除了docker pull,docker load之外还可以通过自定义Dockerfile的方式通过命令docker build 来构建新镜像。通过这种方式可以很自由的定义想要安装的镜像,想要安装的软件,配置环境变量,更改配置文件等一切人为操作。先介绍Dockerfile中一些常见的语法:

  • FROM:来源,可以是本地已经安装的镜像,也可以是docker hub仓库中的镜像
  • MAINTAINER:维护者信息,一般输入个人邮箱
  • COPY|ADD:拷贝/添加本地文件文件夹到操作系统镜像容器中,这个很方便用户配置安装软件,不过COPY只是拷贝,而ADD不仅是拷贝,如果是压缩文件,它默认会解压,所以无须人工进行tar或者unzip命令来解压,强行解压还会报错,提示解压原始文件不存在。
  • WORKDIR:切换工作空间,类似于linux/dos命令的cd
  • RUN:运行linux命令,后面紧跟的是linux命令
  • ENV:设置环境变量
  • CMD:容器启动时执行的命令,有多个命令的话只会执行最后一个,该指令与ENTRYPOINT功能类似。

    通过Dockerfile构建的镜像是一个二次镜像,加工过的,在这个镜像里面,我们需要一个原始镜像,也就是FROM指定的镜像,在后面,我们可以进行拷贝文件,执行linux命令,暴露端口,最后还必须指定容器启动之后运行的命令CMD或者ENTRYPOINT,否则,构建镜像可能不会报错,但是一通过docker run,我们的镜像就是Exit状态。

    简单的示例:这个示例中,我们通过拷贝已经编译好的redis安装目录到centos7-ansible原始镜像中,构建一个redis的docker服务镜像。

    1、准备Dockerfile文件

    

    2、在Dockfile文件所在的目录,我们只需要存放Dockfile文件和redis.tar.gz压缩文件即可。 

    3、最后构建镜像的命令 docker build -t tagname:version . 。最后的一个点表示当前目录,这个参数必须指定一个目录,默认情况下就是当前目录,docker命令运行后, 会默认找到当前文件夹下的Dockerfile,Dockerfile中配置的关于ADD命令都是相对于这个目录。

    

    4、利用我们构建的镜像来启动一个docker服务。

      

    镜像启动正常,会显示Up状态,这时候,我们可以通过docker exec -it redis /bin/bash进入容器查看或者使用redis服务。 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker使用Dockerfile构建镜像 的相关文章

随机推荐

  • win7部署kafka_2.11

    kafka作为开源的分布式消息通信框架 xff0c 可以在有jvm的机器上部署 运行 这里介绍在windows7上的部署 kafka内部自带了zookeeper 如果单机简单部署 xff0c 可以不用另外下载部署zookeeper 1 下载
  • 正则表达式驼峰转中(下)划线

    一 驼峰转中划线采用正则来实现可以看如下代码 xff1a span class hljs string 34 marginTop 34 span replace a z A Z span class hljs string 34 span
  • 工作无聊?程序员上班没事做该怎么办!

    作为一名程序员 xff0c 工作强度不稳定是比较正常的 xff0c 忙的时候会埋怨 xff0c 闲的时候会发慌 合理的安排自己的工作也是程序员最基本且最重要的能力 工作不紧张的时候 xff0c 可以好好利用起来充实自己 xff0c 根据自身
  • mysql5.7.x:this is incompatible with DISTINCT

    DISTINCT关键字经常在MySQL中使用 xff0c 在mysql5 7以前的版本中一般没有什么问题 xff0c 但是在5 7以后的版本中会遇到这样的错误 Caused by java sql SQLException Expressi
  • sublime3配置Python编译器快速编译python程序

    本文介绍经常用的sublime编辑器作为PythonIDE时如何快速编译代码并得到执行结果 xff0c 前提是本机已经安装了python xff0c 并加入了环境变量 xff0c 命令行下输入python xff0c 会有如下输出 xff1
  • redhat7通过yum安装mysql5.7.17

    rhel centos系列linux操作系统自身没有mysql的源 xff0c 需要自行下载安装 本文介绍如何安装mysql5 7 x数据库 第一步 xff1a 下载源 root span class hljs variable 64 cl
  • mysql主从复制环境搭建

    所需服务器 xff1a 两台 centos7 linux虚拟机 服务器分配 server 192 168 56 201 client 192 168 56 202 说明 xff1a 使用server做主库服务器client做从库服务器 第一
  • hadoop2.6.0伪分布式环境搭建

    Hadoop作为分布式大数据处理框架在数据处理应用中有广泛的应用 xff0c 本文介绍在Linux环境下搭建hadoop伪分布式集群 xff0c 记录下自己的学习过程 一 虚拟机准备 xff0c 为了减少折腾 xff0c 不建议在windo
  • ubuntu1404单机安装部署openstack-juno

    Redhat上可以很快的使用All in one的方式安装openstack xff0c 先安装packstack 然后通过packstack allinone这条命令 就可以一步安装openstack 最后设置IP和网桥 xff0c 就可
  • ubuntu上利用qemu-kvm创建虚拟机

    kvm是Kernel based Virtual Machine的缩写 xff0c 即基于内核的虚拟机技术 xff0c 运行在具备Intel vt或者AMD V功能的x86平台上 在linux2 6 20之后的版本中kvm成为了linux内
  • Fatal error in launcher: Unable to create process using解决办法

    我的机器是windows7 64位机器 xff0c 本来默认安装了pip命令是9 0 1版本的 xff0c 网上有介绍说可以安装1 5 6版本 我考虑将pip更改为1 5 6版本 xff0c 去官网下载一个whl的文件 xff0c 利用pi
  • openstack-install-ubuntu-single说明

    ubuntu1404单机安装部署openstack juno值得注意的地方 xff0c 这里说明一下 先来说说openstack组件 keystone gt 认证组件glance gt 镜像组件 xff0c 负责管理虚拟机镜像nova gt
  • hive自定义函数UDF

    Hive自定义函数 UDF xff0c 可以帮助用户轻松实现在hql语句中展现自定义查询结果 这里以一个简单的连接函数来实现用户自定义函数 xff0c 假设表结构如下 xff1a 表中只有两个简单的字段 xff0c id和name 这里实现
  • Oracle 数据误删的恢复措施

    Oracle中 常见的数据删除操作就三种 xff0c truncate xff0c drop xff0c delete xff0c 下面分类说一下如何恢复 Truncate xff1a 该操作执行后 xff0c 保留表结构 xff0c 清空
  • Hive使用入门

    先介绍一些基本的命令 xff1a 1 进入hive命令行 xff0c 这种方式进入之后 xff0c 操作结果展示时带有执行mapreduce的调试信息 xff1b hive service cli 等同于直接输入hive 2 进入hive命
  • Hive内部表和外部表的区别

    hive作为基于hdfs的数据仓库 xff0c 在构建表的时候 xff0c 会有内部表和外部表 xff0c 这里介绍两者的异同点 相同点 xff1a 1 他们都是用mysql或者derby作为元数据存储 xff0c 他们在元数据的组织上是相
  • hive:For direct MetaStore DB connections, we don't support retries at the client level

    hive创建表和导入数据都没有问题 xff0c 在删除表 xff0c 做drop table 时报如题所示的错误 有的文章说修改元数据库字符集为latin1 但是元数据库字符集默认创建就是latin1 修改字符集无法解决该问题 通过更换my
  • rhel7安装docker

    docker是当下最流行的虚拟化容器技术之一 xff0c 它是基于lxc的一种容器技术 xff0c 该技术已经非常成熟 xff0c 而且在实际应用中已经越来越普遍 很多框架都有对docker的支持 xff0c 包括hadoop spark
  • Openstack使用ubuntu镜像启动虚拟机实例

    一般情况下openstack环境搭建好了之后 xff0c 就是测试启动虚拟机 通常我们会使用一个最基本的镜像cirros 0 3 3 x86 64 disk img来作为镜 像 xff0c 使用glance命令行或者horizon的图形化界
  • docker使用Dockerfile构建镜像

    docker获取镜像 xff0c 除了docker pull docker load之外还可以通过自定义Dockerfile的方式通过命令docker build 来构建新镜像 通过这种方式可以很自由的定义想要安装的镜像 xff0c 想要安