zoukankan      html  css  js  c++  java
  • 4.Dockerfile 语法及构建

    Dockerfile 实例

    1.创建Dockerfile文件

    FROM nginx:1.17.6
    
    ENV LANG en_US.UTF-8
    
    ADD index.html /usr/share/nginx/html
    
    EXPOSE 80
    EXPOSE 443
    

    2.构建

    docker build . -t daikainan/mynginx:1.0.0

      .当前目录
      -t 新标签
    

    2.运行并测试

    docker run -d -p 80:80 --name mynginx mynginx:1.1.0

    如果报错或生成镜像没有标签,看下错误输出,index.html是否存在

    3.注册账号

    去https://hub.docker.com/ 注册自己账号

    4.将自己生成的镜像发布到hub.docker.com上

    # 注册docker id后,在linux中登录dockerhub,国内网速慢,失败了,多登陆几次
    docker login
    

    # 推送docker image到dockerhub
    docker push daikainan/mynginx:1.1.0
    

    • 去dockerhub中检查镜像

    • 验证
    # 先删除本地镜像,然后再测试下载pull 镜像文件
    docker rmi daikainan/mynginx:1.1.0
    docker pull daikainan/mynginx:1.1.0
    


    Dockerfile 语法

    FROM centos #制作base image 基础镜像,尽量使用官方的image作为base image
     
    LABEL version="1.0" #容器元信息,帮助信息,Metadata,类似于代码注释
    LABEL maintainer="pig4cloud@qq.com"
     
    #对于复杂的RUN命令,避免无用的分层,多条命令用反斜线换行,合成一条命令!
    RUN yum update && yum install -y vim 
        Python-dev #反斜线换行
     
    WORKDIR /root #相当于linux的cd命令,改变目录,尽量使用绝对路径!!!不要用RUN cd
    WORKDIR /test # 如果没有就自动创建
     
    ADD test.tar.gz /  # 添加到根目录并解压
    COPY hello test/  # 等同于上述ADD效果
     
     
    ADD与COPY
       - 优先使用COPY命令
        -ADD除了COPY功能还有解压功能
     
    ENV # 环境变量,尽可能使用ENV增加可维护性
    ENV MYSQL_VERSION 5.6 # 设置一个mysql常量
    
    明令	用途
    FORM	base image
    RUN	执行命令
    ADD	添加文件
    COPY	拷贝文件
    CMD	执行命令
    EXPOSE	暴露端口
    WORKDIR	指定路径
    MAINTAINER	维护者
    ENV	设置环境变量
    ENTRYPOINT	容器入口
    USER	指定用户
    VOLUME	mount point 提供独立与容器之外的持久化存储
    
  • 相关阅读:
    this is a test from windows live writer 11529
    RoR部署方案深度剖析 (转载自javaeye)
    Rails每周一题(六): Security Guide(上) (转载)
    让你大脑变冷静的28句英文
    REST on Rails之自定义路由
    REST on Rails之资源嵌套
    #### 高薪 ##招聘:。。。。。 待遇非常不错。
    JavaEye网站的RoR性能优化经验谈 (转载)
    网页打印的分页问题
    Ruby Metaclass详解
  • 原文地址:https://www.cnblogs.com/daikainan/p/14287316.html
Copyright © 2011-2022 走看看