相比docker commit来说,Dockerfile的方法会更加自动化,更加方便快捷,而且功能也更强大。拿构建Nginx容器举例。

先创建一个目录

mkdir /opt/docker-file

进入目录

cd /opt/docker-file/

然后创建一个nginx目录并进入,创建一个Dockerfile文件并写入一些命令

cd nginx
vim Dockerfile
#This is my docker file

#Version
#Auth Wt #Base
FROM centos                           #基础镜像是centos,后面跟有效的镜像名(如果该镜像你的本地仓库没有则会从远程仓库Pull取)。后面的指令在些镜像中执行
MAINTAINER wt                         #告诉别人,是谁创建的(维护者信息)
ADD pcre-8.39.tar.gz /usr/local/src            #打包一些文件(这里是下载好之后的,下载好的文件必须也是同级目录,这里使用ADD命令,如果是一个压缩包不需要解压命令,它会自动帮我们解压)
ADD nginx-1.13..tar.gz /usr/local/src
RUN yum install -y wget gcc gcc-c++ make openssl-devel #执行一些系统命令,每一条RUN指令(可能会有多条linux命令)会在当前容器最上面的可读写层执行并且提交成一个新的镜像层,接下来的指令会在这个新的镜
像层里执行。
RUN useradd -s /sbin/nologin -M www
WORKDIR /usr/local/src/nginx-1.13.            #进入指定目录工作。
RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/usr/local/src/pcre-8.39 && make && make install
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf     #修改nginx自启动
ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE                                 #指定容器对外暴露的端口号。
CMD ["nginx"]                            #指定你制作出来的镜像在启动成容器时运行命令的默认的参数。

Dockerfile 写完之后开始构建

docker build -t nginx-file:v1 /opt/docker-file/nginx

接下来就可以看到每一步的操作了,每一步都有一个ID,都是一个层级。

最后访问宿主机的IP就可以看到Nginx的欢迎界面了。

当然此案例只是一个入门,做到更深入全面的操作还需要更多的实际项目参与。

Docker镜像的构成__Dockerfile的更多相关文章

  1. MySQL、MongoDB、Redis数据库Docker镜像制作

    MySQL.MongoDB.Redis数据库Docker镜像制作 在多台主机上进行数据库部署时,如果使用传统的MySQL的交互式的安装方式将会重复很多遍.如果做成镜像,那么我们只需要make once ...

  2. 理解Docker(2):Docker 镜像

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  3. 如何合并两个Docker 镜像

    http://www.open-open.com/lib/view/open1437746544709.html 在你的机器上使用docker pull来从Docker Hub下载镜像. docker ...

  4. Docker镜像的管理和创建

    1. Docker镜像和Docker容器:      Docker镜像实际上是一系列的文件系统,通常的Linux系统一般是两层文件系统,bootfs和rootfs,bootfs就是bootloader ...

  5. docker 源码分析 四(基于1.8.2版本),Docker镜像的获取和存储

    前段时间一直忙些其他事情,docker源码分析的事情耽搁了,今天接着写,上一章了解了docker client 和 docker daemon(会启动一个http server)是C/S的结构,cli ...

  6. docker使用阿里云Docker镜像库加速

    官方镜像下载实在是慢,于是开通了阿里云开发者帐号, 官方帮助 阿里云Docker镜像库 阿里云容器Hub服务:http://dev.aliyun.com/search.html 来自云端的容器Hub服 ...

  7. 第四章 使用Docker镜像和仓库(二)

    第四章 使用Docker镜像和仓库(二) 回顾: 开始学习之前,我先pull下来ubuntu和fedora镜像 [#9#cloudsoar@cloudsoar-virtual-machine ~]$s ...

  8. 第四章 使用Docker镜像和仓库

    第4章 使用Docker镜像和仓库 回顾: 回顾如何使用 docker run 创建最基本的容器 $sudo docker run -i -t --name another_container_mum ...

  9. 将 ASP.NET Core 1.0 应用作为 docker 镜像发布 (Linux版)

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

随机推荐

  1. c oth

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  2. JavaScript基础:BOM的常见内置方法和内置对象

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. BOM的介绍 JavaScript的组成 JavaScript基础分为三 ...

  3. ueditor显示内容末尾有多余标记的解决

    问题: 最近用了百度的ueditor文本编辑器,出现一个问题,用ueditor存数据到数据库都正常,但是重新读取后赋值到ueditor却会在末尾多出 "> 这两个符号.赋值方式如下: ...

  4. 【转】Robust regression(稳健回归)

    Robust regression(稳健回归) 语法 b=robustfit(X,y) b=robustfit(X,y,wfun,tune) b=robustfit(X,y,wfun,tune,con ...

  5. 查看Eclipse运行工程时使用的Command Line

    一.查看使用的Command Line 1.Window -> Show View -> Other... -> Debug 2.运行工程,然后在Debug视窗中找到运行的工程的主线 ...

  6. AQS 框架之 Unsafe 源码详解

    ■ 前言 之前 LockSupport那篇已经叙述了是线程阻塞工具类,其底层由 Unsafe 实现,即 park(), unpark() 方法,获取指针偏移量,并操纵内存.本篇主要介绍 Unsafe ...

  7. spring boot 中实现兼容不同的请求类型的方法。

    比如一个接口,既想实现请求参数是application/json,又想实现form提交,改怎么做呢?用postman去测试,发现不可能做到两全其美. 我有一个方法,就是不用requestbody,也可 ...

  8. Go笔记-继承

    [Go中继承的实现]     当一个匿名类型被内嵌在结构体中时,匿名类型的可见方法也同样被内嵌,这在效果上等同于外层类型 继承 了这些方法:将父类型放在子类型中来实现亚型 package main i ...

  9. IDEA Tomcat:Failed to initialize end point associated with ProtocolHandler

    发现Tomcat的日志中出现这样的错误,一般都是端口被占用了.在任务管理器中检查是否有其他的应用在使用该端口 Failed to initialize end point associated wit ...

  10. 【转】我读过最好的epoll讲解(来自知乎)

    首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象.不管是文件,还是套接字,还是管道,我们都可以把他们看作流.之后我们来讨论I/O的操作,通过read,我 ...