• docker构建镜像


     创建docker镜像有两种方法。

    1。docker commit 这种不推荐,就不介绍了。

    2。用docker build命令和Dockerfile文件

    下面构建一个nginx小应用。

    创建文件夹
    mkdir static_web
    进入这个文件夹 cd static_web
    /
    创建Dockerfile文件 touch Dockerfile

    编辑Dockerfile文件

    下面是Dockerfile文件的代码。

    FROM ubuntu:18.04
    MAINTAINER lmy "lmy@163.com"
    RUN apt-get update && apt-get install -y nginx
    RUN echo 'Hi, I am in your container' /usr/share/nginx/html/index.html
    EXPOSE 80

    docker构建是有缓存的,如果你只修改了第4步,那么前3步会用缓存。但是有时候要确保构建过程不会使用缓存。比如,如果已经缓存了前面的第3步,即apt-get update,那么docker将不会再次刷新APT包的缓存。

    要想略过缓存功能,可以用docker build 的--no-cache 标志。

    sudo docker build --no-cache -t lmy/static_web .

    当然如果你不想用命令行,可以在Dockerfile中加入下面的指令来更新缓存。

    FROM ubuntu:18.04
    MAINTAINER lmy "lmy@163.com"
    ENV REFRESHED_AT 2019-07-24
    RUN apt-get update && apt-get install -y nginx
    RUN echo 'Hi, I am in your container' /usr/share/nginx/html/index.html
    EXPOSE 80

    这个ENV是在镜像中设置环境变量,我通过ENV指令来设置一个名为REFRESHED_AT的环境变量,这个环境变量用来表明该镜像模板的最后的更新时间,如果想刷新一次构建,可以通过修改这个刷新时间来实现。

    查看镜像是如何构建出来的。

    sudo docker history lmy/static_web

    从新镜像启动容器

    sudo docker run -d -p 80 --name static_web01 lmy/static_web nginx -g "daemon off;"
    -p 80 可以让docker在宿主机上随即选择一个位于32768-61000的一个比较大的端口号来映射到容器中的80端口上。

    在浏览中输入http://localhost:32768/ 可以看到nginx页面啦。

    查看容器的ip地址

    sudo docker port static_web01

    可以通过-p选项映射到特定端口上。

    sudo docker run -d -p 8080:80 --name static_web8080 lmy/static_web nginx -g "daemon off;"

     可以绑定到特定的网络接口上。

    sudo docker run -d -p 127.0.0.1:80:80 --name static_web80 lmy/static_web nginx -g "daemon off;"

    绑定到特定的网络接口的随即端口

    sudo docker run -d -p 127.0.0.1::80 --name static_web_suiji lmy/static_web nginx -g "daemon off;"

    -P docker还提供了更简单的方式: 该参数可以用来对外公开在Dockerfile中通过EXPOSE指令公开的所有端口。

  • 相关阅读:
    校园活动管理-毕业设计
    Golang时间字符串转换计算器
    5.21 Go秘籍:异步收割,永葆单身
    Golang东北之旅—channel
    Python3下载豆瓣音乐人小站音乐
    一张图记住4种树
    人生如锁
    Golang构造二叉树解决整数排序问题
    用Golang单元测试写作文
    Golang定时任务表达式合法性校验
  • 原文地址:https://www.cnblogs.com/liumy/p/11235598.html
Copyright © 2020-2023  润新知