1.准备:

创建一个目录oldboy-hello

2.编写Dockerfile

内容如下,只有三行

FROM scratch

ADD hello /

CMD ["/hello"]

当前目录下的文件

[root@linux-node1 oldboy-hello]# ls

Dockerfile hello

3.构建docker镜像

[root@linux-node1 oldboy-hello]# docker build -t oldboyedu/hello .

Sending build context to Docker daemon .608kB

Step / : FROM scratch

--->

Step / : ADD hello /

---> 0018e580ccaf

Removing intermediate container 64b74f2071e1

Step / : CMD /hello

---> Running in 6438314dc49d

---> 4a047322f97d

Removing intermediate container 6438314dc49d

Successfully built 4a047322f97d

Successfully tagged oldboyedu/hello:latest

4.启动容器

[root@linux-node1 oldboy-hello]# docker run --rm -it oldboyedu/hello

Welcome oldboy education!

5.补充

hello的是使用C语言编译之后的二进制程序

[root@linux-node1 opt]# cat hello.c

//#include <unistd.h>

#include <sys/syscall.h>

#ifndef DOCKER_IMAGE

#define DOCKER_IMAGE "hello-world"

#endif

#ifndef DOCKER_GREETING

#define DOCKER_GREETING "Welcome oldboy education!"

#endif

const char message[] =

DOCKER_GREETING "\n";

void _start() {

//write(1, message, sizeof(message) - 1);

syscall(SYS_write, , message, sizeof(message) - );

//_exit(0);

syscall(SYS_exit, );

}

编译命令gcc -o hello -static -nostartfiles hello.c

测试执行

[root@linux-node1 oldboy-hello]# ./hello

Welcome oldboy education!

如果编译出错

[root@linux-node1 ~]# gcc -o hello -static -nostartfiles hello.c

/usr/bin/ld: cannot find -lc

collect2: error: ld returned  exit status

安装glibc-static

yum install glibc-static gcc -y

构建docker基本镜像的更多相关文章

  1. 从零开始构建docker基础镜像

    段子 今年基本已经结束了,我问了很多朋友今年挣钱了没?大多朋友都有挣,而且挣得五花八门:有挣个屁的,有挣个锤子的,有挣个毛的,更有甚者挣个妹的,奢侈之极!最恐怖的是挣个鬼的!有的还可以,挣个球,下午我 ...

  2. 使用Nexus3构建Docker私有镜像仓库

    一.安装Nexus3 Nexus3是Sonatype提供的仓库管理平台,Nuexus Repository OSS3能够支持Maven.npm.Docker.YUM.Helm等格式数据的存储和发布:并 ...

  3. Docker教程:镜像构建和自动镜像构建dockerfile

    http://blog.csdn.net/pipisorry/article/details/50805379 Docker透过Dockerfile来记录建立Container映象文件的每一个步骤,可 ...

  4. Docker 使用 Dockerfile 构建自己的镜像

    可以使用Dockerfile的配置文件方式进行构建自己的镜像 下面利用docker构建一个Caddy web服务器 构建脚本 Dockerfile有自己的命令,下面使用了一些比较常用的命令,更多的Do ...

  5. 多阶段构建Docker镜像

    在Docker 17.05及更高的版本中支持支持一种全新的构建镜像模式:多阶段构建: 多阶段构建Docker镜像的最大好处是使构建出来的镜像变得更小: 目前常见的两个构建镜像的方式为: 1.直接使用某 ...

  6. 使用Jenkins pipeline流水线构建docker镜像和发布

    新建一个pipeline job 选择Pipeline任务,然后进入配置页面. 对于Pipeline, Definition选择 "Pipeline script from SCM" ...

  7. Docker:使用Jenkins构建Docker镜像

    Docker  彭东稳  1年前 (2016-12-27)  10709次浏览  已收录  0个评论 一.介绍Jenkins Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从 ...

  8. 打包应用和构建Docker镜像(docker在windows上)

    在构建Docker时编译应用 一般有两种方法在构建镜像时进行打包应用.第一种方法就是使用基本的镜像,该镜像包括应用平台和构建工具,因此在Dockerfile中,复制源代码到镜像中并在构建镜像时编译ap ...

  9. 使用Docker构建jdk1.8镜像

    一.下载centos镜像 下载自己需要的版本TAG,详见: docker安装指定版本TAG的镜像 $ sudo docker pull centos:centos7 二.下载jdk1.8,并上传到/u ...

随机推荐

  1. 五十五:WTForms表单验证之渲染模板

    此功能看似强大,实则鸡肋 from wtforms import Form, StringField, BooleanField, SelectFieldfrom wtforms.validators ...

  2. 安装Redis-cluster-gem install redis报错的解决方案

    错误描述: [root@eshop-cache01 local]# gem install redis ERROR: Loading command: install (LoadError) cann ...

  3. spring boot密码管理

    1.引入依赖 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId> ...

  4. ES5与ES6常用语法教程之 ③模板字符串、判断字符串是否包含其它字符串

    这部分教程我们主要讲解以下几个常用语法 模板字符串 带标签的模板字符串 判断字符串中是否包含其他字符串 给函数设置默认值 模板字符串 老式的拼接字符串方法 let dessert = '

  5. TensorFlow 用神经网络解决非线性问题

    本节涉及点: 激活函数 sigmoid 产生随机训练数据 使用随机训练数据训练 加入偏移量b加快训练过程 进阶:批量生产随机训练数据 在前面的三好学生问题中,学校改变了评三好的标准 —— 总分> ...

  6. python-https状态码

    HTTP状态码状态码的职责是当客户端向服务器发送请求时,描述返回的请求结果.借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误. 状态码的类别 >>>状态码 类别 说明 ...

  7. Windows下安装jdk-12.0.2

    Java更新到12,新版本的Java中不再存在jre,配置环境变量有所改变. 下载最新jdk 下载地址:https://www.oracle.com/technetwork/java/javase/d ...

  8. 保存cookie 到本地

    #encoding: utf-8 from urllib import requestfrom http.cookiejar import MozillaCookieJar #创建一个cookieja ...

  9. 把CSV文件中的labels标签提取为json文件

    需求: validationImages.csv文件是存储验证集数据名称和类别信息(labels)的文件, 要生成一个label和类别名一一对应且正序排列的json文件,代码如下: labels_di ...

  10. Andrew算法求二维凸包-学习笔记

    凸包的概念 首先,引入凸包的概念: (有点窄的时候...图片右边可能会被吞,拉开图片看就可以了) 大概长这个样子: 那么,给定一些散点,如何快速地求出凸包呢(用在凸包上的点来表示凸包) Andrew算 ...