• 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服务器。

  • 相关阅读:
    【洛谷P1082】同余方程
    【总结】数论相关
    【模板】扩展欧拉定理
    【模板】贝祖定理
    【SPOJ116】Intervals
    【CF1141E】Superhero Battle
    【CF1141F2】Same Sum Blocks
    【CF1141F1】Same Sum Blocks
    【CF1141G】Privatization of Roads in Treeland
    【洛谷P1198】最大数
  • 原文地址:https://www.cnblogs.com/wzllzw/p/11994249.html
Copyright © 2020-2023  润新知