初识Dockerfile

daymenu · · 4060 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

dockerfile 的作用: 构建镜像 *** [**官方文档**](https://docs.docker.com/v17.09/engine/reference/builder/#from) --- ### FROM 功能: 指定基础镜像 语法: ```shell FROM <image> [AS <name>] FROM <image> [:<tag>][AS <name>] FROM <image> [@<digest>][AS <name>] ``` ### RUN 功能 :在一个新层执行任意命令并提交结果,提交的结果将用于Dockerfile的下一个步骤,分层运行和提交符合Docker的核心概念 ```shell RUN <command> RUN ["executable","param1","param2"] 例子 FROM alpine:latest RUN echo "han" > 1.text RUN ["cat", "1.text"] ``` ### CMD 功能 :指令用于设置部署容器映像的实例时要运行的默认命令 注意: 一个Dockerfile 只能有一个有效的 CMD 指令,如果有多个CMD指令最后一个生效 ```shell CMD ["executable", "param1", "param2"] // exec 格式 首选格式 CMD ["param1", "param2"] // 为ENTRYPOINT 指定的参数 CMD executable param1 param2 // shell 格式 ``` ### EXPOSE 功能 : 在运行时监听指定的网络端口 ```shell EXPOSE <port> [<port>/<protocol>] 例子: EXPOSE 3306/tcp ``` ### ENV 功能 : 设置环境变量 ```shell ENV <key> <value> ENV <key>=<value> ... 例子1: ENV name="JJ" sex="woman" 例子2: ENV name JJ ENV SEX woman ``` ### ADD 功能 : 复制发送文件到镜像 规则: 1. src 必须是内部语境的构建,只能以当前目录为基准 2. src 是URL并不以/结尾,则从URL下载文件复制到dest 3. src 是URL并不以/结尾,则从URL下载文件复制到dest/filename 4. src 是目录,复制目录全部内容到dest ```shell ADD <src> <dest> ADD ["<src>", ... "dest"] 例子: ADD 1.txt /text/ ADD mydir /data/ src 可以是文件夹也可以是文件 ``` ### COPY 功能:复制新文件或目录<src>,并将他们添加到容器的文件系统dest中 与ADD相似 ### ENTRYPOINT 功能: 配置将作为可执行文件运行的容器 ```shell ENTRYPOINT ["executable","param1","param2"] ENTRYPOINT executable param1 param2 例子: ENTRYPOINT ["top", "-b"] CMD ["-c"] ``` ### VOLUME ``` VOLUME /data ``` ### WORKDIR 功能: 指定工作目录 ```shell WORKDIR /path/to/workdir 例子: WORKDIR /var/www ``` 让容器在后台运行 ```shell docker run -d -it ubuntu --name myubuntu ``` 进入正在运行的container ```shell docker exec -it myubuntu /bin/bash ```

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4060 次点击  ∙  1 赞  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传