美文网首页
dockerfile方式创建nginx服务

dockerfile方式创建nginx服务

作者: 焚_44b3 | 来源:发表于2019-04-15 17:26 被阅读0次
    • 创建Dockerfile
    cd /home/docker/run
    #如果路径不存在,则自己去创建
    touch Dockerfile1
    vim Dockerfile1
    #内容如下
    
    # FROM指定一个基础镜像, 一般情况下一个可用的 Dockerfile一定是 FROM 为第一个指令。
    # 至于image则可以是任何合理存在的image镜像。
    # FROM 一定是首个非注释指令 Dockerfile.
    # FROM 可以在一个 Dockerfile 中出现多次,以便于创建混合的images。
    # 如果没有指定 tag ,latest 将会被指定为要使用的基础镜像版本。
    FROM ubuntu
    
    # MAINTAINER 这里是用于指定镜像制作者的信息
    # 你可以写上自己的ID,邮箱等
    MAINTAINER duerhong
    
    # RUN命令将在当前image中执行任意合法命令并提交执行结果。
    # 命令执行提交后,就会自动执行Dockerfile中的下一个指令。
    # 层级 RUN 指令和生成提交是符合Docker核心理念的做法。
    # 它允许像版本控制那样,在任意一个点,对image 镜像进行定制化构建。
    # RUN 指令缓存不会在下个命令执行时自动失效。
    # 比如 RUN apt-get dist-upgrade -y 的缓存就可能被用于下一个指令.
    #  --no-cache 标志可以被用于强制取消缓存使用。
    
    # 指定国内镜像,加快下载速度
    RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
    
    # 更新库
    RUN apt-get update
    # 下载nginx
    RUN apt-get install -y nginx
    # 将当前目录下的index.html拷贝到 容器下
    COPY index.html /var/www/html
    
    #ENTRYPOINT 是指定 Docker image 运行成 instance (也就是 Docker container) 时,要执行的命令或者文件。
    # 可以参考:[https://www.jianshu.com/p/690844302df5](https://www.jianshu.com/p/690844302df5)
    ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]
    
    # EXPOSE 指令指定在docker允许时指定的端口进行转发
    EXPOSE 80
    
    • 创建index.html
    vim index.html
    # 内容如下
    <html>
    <head>
    <meta charset="utf-8" />
    <title>docker测试中文版</title>
    </head>
    <body>
    欢迎学习docker,这里是php菜鸟学院教程
    </body>
    </html>
    
    • 生成镜像
    docker build -t test-nginx1 -f Dockerfile1 .
    
    • 运行容器
    docker run -p 80:80 -d test-nginx1
    #注意:如果有占用host主机80端口 可以另外指定其他端口或者关闭占用端口的程序
    
    • 测试访问
    curl http://localhost:80
    

    也可以通过浏览访问


    dockerfile命令参考

    https://www.cnblogs.com/sorex/p/6481407.html#from

    https://www.jianshu.com/p/690844302df5

    相关文章

      网友评论

          本文标题:dockerfile方式创建nginx服务

          本文链接:https://www.haomeiwen.com/subject/bbauwqtx.html