• dockerfile


    dockerfile

    Dockerfile指令 		指令简介
    FROM 			Dockerfile 除了注释第一行必须是 FROM ,FROM 后面跟镜像名称,代表要基于哪个基础镜像构建我们的容器。
    RUN 			RUN 后面跟一个具体的命令,类似于 Linux 命令行执行命令。
    ADD 			拷贝本机文件或者远程文件到镜像内
    COPY 			拷贝本机文件到镜像内
    USER 			指定容器启动的用户
    ENTRYPOINT 		容器的启动命令
    CMD 			CMD 为 ENTRYPOINT 指令提供默认参数,也可以单独使用 CMD 指定容器启动参数
    ENV 			指定容器运行时的环境变量,格式为 key=value
    ARG 			定义外部变量,构建镜像时可以使用 build-arg = 的格式传递参数用于构建
    EXPOSE 			指定容器监听的端口,格式为 [port]/tcp 或者 [port]/udp
    WORKDIR 		为 Dockerfile 中跟在其后的所有 RUN、CMD、ENTRYPOINT、COPY 和 ADD 命令设置工作目录。
    
    FROM centos:7
    
    COPY nginx.repo /etc/yum.repos.d/nginx.repo
    
    RUN yum install -y nginx
    
    EXPOSE 80
    
    ENV HOST=mynginx
    
    CMD ["nginx","-g","daemon off;"]
    
    • 第一行表示我要基于 centos:7 这个镜像来构建自定义镜像。这里需要注意,每个 Dockerfile 的第一行除了注释都必须以 FROM 开头。
    • 第二行表示拷贝本地文件 nginx.repo 文件到容器内的 /etc/yum.repos.d 目录下。这里拷贝 nginx.repo 文件是为了添加 nginx 的安装源。
    • 第三行表示在容器内运行yum install -y nginx命令,安装 nginx 服务到容器内,执行完第三行命令,容器内的 nginx 已经安装完成。
    • 第四行声明容器内业务(nginx)使用 80 端口对外提供服务。
    • 第五行定义容器启动时的环境变量 HOST=mynginx,容器启动后可以获取到环境变量 HOST 的值为 mynginx。
    • 第六行定义容器的启动命令,命令格式为 json 数组。这里设置了容器的启动命令为 nginx ,并且添加了 nginx 的启动参数 -g 'daemon off;' ,使得 nginx 以前台的方式启动。
    
        镜像操作命令:
    
            拉取镜像,使用 docker pull 命令拉取远程仓库的镜像到本地 ;
    
            重命名镜像,使用 docker tag 命令“重命名”镜像 ;
    
            查看镜像,使用 docker image ls 或 docker images 命令查看本地已经存在的镜像;
    
            删除镜像,使用 docker rmi 命令删除无用镜像 ;
    
            构建镜像,构建镜像有两种方式。第一种方式是使用 docker build 命令基于 Dockerfile 构建镜像,也是我比较推荐的镜像构建方式;第二种方式是使用 docker commit 命令基于已经运行的容器提交为镜像。
    
        镜像的实现原理:
        镜像是由一系列的镜像层(layer )组成,每一层代表了镜像构建过程中的一次提交,当我们需要修改镜像内的某个文件时,只需要在当前镜像层的基础上新建一个镜像层,并且只存放修改过的文件内容。分层结构使得镜像间共享镜像层变得非常简单和方便。
    
    现在学习还不晚;
  • 相关阅读:
    gazebo自建小车备忘
    关于hokuyo的一些参数的备忘
    xenserver加入池报错The servers in this pool are not homogeneous
    exchange管理控制台初始化失败--Kerberos连接失败
    修复windows系统更新失败
    powershell同步时间
    powershell创建密文密码文件
    powershell常用命令
    Graylog客户端及服务端
    powershell,cmd,shell查看帮助
  • 原文地址:https://www.cnblogs.com/ainimore/p/14378670.html
Copyright © 2020-2023  润新知