zoukankan      html  css  js  c++  java
  • Dockerfile构建镜像

    参考书籍 :第一本docker书【澳】James Turnbull

    1.第一个Dockerfile

      (1)创建了一个dockerfile3的目录来保存Dockerfile。这个目录就是我们的构建环境。

    $ mkdir dockerfile3
    $ cd dockerfile3
    $ touch Dockerfile

      (2)Dockerfile文件如下。

      在这个例子里,我们通过RUN指令更新了已经安装的APT仓库,安装了nginx包。之后将 'Hi, I am in your container' 写入  /var/www/html/index.nginx-debian.html。

      该Dockerfile由一系列指令和参数组成。指令必须为大写。文件从上到下依次执行,所以应根据需要合理安排指令的顺序。

      每条指令都会创建一个新的镜像层并对镜像进行提交。

    • Docker从基础镜像运行一个容器。
    • 执行一条指令,对容器做出修改。
    • 执行类似docker commit的操作,提交一个新的镜像层。
    • Docker再基于刚提交的镜像层运行一个新容器。
    • 执行Dockerfile中的下一条指令,直到所有指令都执行完毕。
    From ubuntu:latest
    MAINTAINER WZL 
    RUN apt-get update && apt-get install -y nginx
    RUN echo 'Hi, I am in your container' > /var/www/html/index.nginx-debian.html
    EXPOSE 80

      (3)基于Dockerfile构建新镜像。

    $ cd dockerfile3
    $ docker build -t="dockerfile3" .

      (4)从镜像启动容器

    $ docker run -d -p 80 --name dockerfile3_1 dockerfile3 nginx -g "daemon off;"

      -d :告诉docker以分离(detached)方式在后台运行。这种方式非常适合运行类似Nginx守护进程这样的需要长时间运行的进程。

      -p : 用来控制Docker运行时应该公开那些网络端口给外部(宿主机)。

      

      查看端口映射情况

    $ docker port dockerfile3_1 80

      这样,通过  ip:port的形式就能访问该容器的nginx服务器。

  • 相关阅读:
    java 深克隆(深拷贝)与浅克隆(拷贝)详解
    设计模式之单例模式
    设计模式之工厂模式
    批量下载google 字体小工具
    LBPL--基于Asp.net、 quartz.net 快速开发定时服务的插件化项目
    测试
    WCF 生产json对外的接口
    四舍五入小算法 (以前写的,采用拆分)
    自己动手写控件(模仿mvc htmlhelper的类)
    步骤详解安装Apache web服务器
  • 原文地址:https://www.cnblogs.com/wzllzw/p/11994249.html
Copyright © 2011-2022 走看看