1. 概述

老话说的好:超越别人,不如超越自我,每天比昨天的自己更强就好。

言归正传,之前聊了 Docker 的相关知识,今天来聊聊如何编辑 Dockerfile 脚本,来创建我们自己的镜像。

2. Dockerfile 相关知识

2.1 脚本语法 

FROM 镜像名  // 以哪个镜像为基础

MAINTAINER zhuifengren   // 运维人员姓名

RUN mkdir test1  // 执行一个命令,创建目录 test1

RUN touch test2  // 执行一个命令,创建文件 test2

COPY test3 .   // 复制宿主机当前目录文件 test3 到 容器默认目录

ADD test4.tar.gz .   // ADD命令也是复制宿主机文件到容器默认目录,但ADD会先解压再复制,也可以写一个网址,ADD会先从网址下载文件再复制

ENTRYPOINT ["/bin/sh"]   // 执行命令,如果有多条,只会执行最后一条的,必然会被执行

2.2 镜像创建命令

在 Dockfile 文件的同级目录,执行下面命令

# docker build -t 镜像名称 .

-t :是为生成的 Docker 镜像取个名称,名称的格式为 镜像名称:版本号,只写镜像名称则代表是最后的版本

最后的点 . :是在当前目录寻找 Dockerfile 文件

2.3 镜像运行命令

# docker run 镜像名称

3. Dockerfile 实战

3.1 概述

生成一个 Docker 镜像,用于跑我们微服务组件中的 eureka。

3.2 将 my-eureka 工程打包

# maven clean package

3.3 编写 Dockerfile 文件

# vi Dockerfile

FROM java:8
ADD my-eureka-0.0.1-SNAPSHOT.jar my-eureka-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java","-jar","my-eureka-0.0.1-SNAPSHOT.jar"]

3.4 生成镜像

将打包好的 my-eureka-0.0.1-SNAPSHOT.jar 拷贝到 Dockerfile 的同级目录

# docker build -t myeureka .

3.5 运行镜像

# docker run -d -p 35000:35000 --name myeureka myeureka

这里 eureka 使用的是 35000 端口。

4. 综述

今天聊了一下 Dockerfile 相关的知识 ,希望可以对大家的工作有所帮助。

欢迎帮忙点赞、评论、转发、加关注 :)

关注追风人聊Java,每天更新Java干货。

5. 个人公众号

追风人聊Java,欢迎大家关注

Docker 之 Dockerfile 常用语法与实战的更多相关文章

  1. groovy常用语法及实战

    groovy语言简介 一种基于JVM的敏捷开发语言,作为编程语言可编译成java字节码,也可以作为脚本语言解释执行. 结合了Python.Ruby和Smalltalk的许多强大的特性 支持面向对象编程 ...

  2. centos7下安装docker(dockerfile常用的指令)

    FROM:指定ase镜像 MAINTAINER:设置镜像作者,可以是任意字符 COPY:将文件从build  context复制到镜像.支持两种形式:1.COPY src dest 2.COPY [“ ...

  3. Docker 13 Dockerfile

    参考源 https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0 https://www.bilibili.com/vid ...

  4. Docker:dockerfile自动构建镜像 [六]

    一.手动docker镜像的缺点 相对于手动制作的docker镜像,使用dockerfile构建的镜像有以下优点: 1.dockerfile只有几kb,便于传输 2.使用dockerfile构建出来的镜 ...

  5. Docker Compose 配置文件常用指令

    Docker Compose 配置文件常用指令 YAML文件格式及编写注意事项 YAML是一种标记语言很直观的数据序列化格式,可读性高.类似于XML数据描述语言,语法比XML简单的很多. YAML数据 ...

  6. docker:Dockerfile构建LNMP平台

    docker:Dockerfile构建LNMP平台   1.dockerfile介绍  Dockerfile是Docker用来构建镜像的文本文件,包含自定义的指令和格式.可以通过docker buil ...

  7. Docker 入门指南——常用命令

    前面已经介绍了 Docker 的安装方式,本文总结一下使用 Docker 的基本概念和常用命令. 基本概念 镜像 Image 镜像是一些打包好的已有的环境,可以被用来启动和创建容器 容器 Contai ...

  8. Docker 使用杂记 - 最佳实践尝试 - 实战

    目录 Docker 使用杂记 - 最佳实践尝试 - 实战 Docker简介 项目背景 内在原因 外在原因 基础镜像 需求 镜像维护者 工作文件夹 文件 ADD COPY 宗卷 命令 入口点 Docke ...

  9. Docker深入浅出系列 | Swarm多节点实战

    目录 前期准备 Swarm基本概念 什么是Docker Swarm 为什么要用Swarm Swarm的网络模型 Swarm的核心实现机制 服务发现机制 负载均衡机制Routing Mesh Docke ...

随机推荐

  1. Unity——资源文件夹介绍

    Unity资源文件夹介绍 1.编辑时 在Asset文件下存在Resources和SteamingAsset文件夹: Resources 只读不可修改,打包时直接写死,没有办法通过热更新替换资源: 可以 ...

  2. Spatial Analyst Tools(Spatial Analyst 工具)

    Spatial Analyst Tools 1.区域分析 # Process: 以表格显示分区几何统计 arcpy.gp.ZonalGeometryAsTable_sa("", & ...

  3. 洛谷2619/bzoj2654 Tree(凸优化+MST)

    bzoj的数据是真的水.. qwq 由于本人还有很多东西不是很理解 qwq 所以这里只写一个正确的做法. 首先,我们会发现,对于你选择白色边的数目,随着数目的上涨,斜率是单调升高的. 那么这时候我们就 ...

  4. uoj167 元旦老人与汉诺塔(记忆化搜索)

    QwQ太懒了,题目直接复制uoj的了 QwQ这个题可以说是十分玄学的一道题了 首先可以暴搜,就是\(dfs\)然后模拟每个过程是哪个柱子向哪个柱子移动 不多解释了,不过实现起来还是有一点点难度的 直接 ...

  5. 常用的SQL查询思维/场景

    前言 现在大多数开发工作中,已经可以使用一些组件或框架提供的强大的条件构造器来完成查询数据了,虽然强大而且方便,但也还是存在很多业务场景需要实打实的编写传统SQL语句.特别一些测试.维护.问题排查的时 ...

  6. Probius+Prometheus通过API集成POD监控

    上一篇文章Probius+Kubernetes任务系统如虎添翼讲了我们把Kubernetes集成进了任务系统Probius,上线后小伙伴反馈虽然摆脱了Kubernetes-Dashboard,但还是得 ...

  7. 深入理解Java虚拟机之类加载机制篇

    概述 ​ 虚拟机把描述类的数据从 Class 文件加载到内存中,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,就是虚拟机的类加载机制. ​ 在Java语言里面,类型的 ...

  8. 【Java虚拟机6】Java内存模型(Java篇)

    什么是Java内存模型 <Java虚拟机规范>中曾试图定义一种"Java内存模型"(Java Memory Model,JMM)来屏蔽各种硬件和操作系统的内存访问差异, ...

  9. Machine learning (8-Neural Networks: Representation)

    1.Non-linear Hypotheses 2.Neurons and the Brain 从某种意义上来说,如果我们能找出大脑的学习算法,然后在计算机上执行大脑学习算法或与之相似的算法,也许这将 ...

  10. ssh key公钥

    在ubuntu上生成ssh key 首先使用 ls -al ~/.ssh 查看本地是否已经有key 如果没有会显示如下: ~$ ls -al ~/.ssh ls: cannot access '/ho ...