zoukankan      html  css  js  c++  java
  • 第 3 章 镜像

    Dockerfile 常用指令

    1、FROM 指定base镜像
    2、MAINTAINER 设置镜像的作者,可以为任意字符串
    3、COPY 从build context 复制到镜像

      COPY 支持两种形式:

    • COPY src dest
    • COPY ["src", "dest"]

      注意:src 只能指定 build context 中的文件或目录。


    4、ADD 与COPY类似,如果src是归档文件是会自动解压到dest。
    5、ENV 设置环境变量,可被后面使用
    6、EXPOSE 指定容器中的进程会监听的某个端口,Docker 可以将该端口暴露出来。
    7、VOLUME 将文件或目录声明为volume
    8、WORKDIR 为后面的 RUN, CMD, ENTRYPOINT, ADD 或 COPY 指令设置镜像的当前工作目录
    9、RUN 在容器中运行指定的命令
    10、CMD 容器启动时运行的指定的命令(可以有多个,但是只有最后一个生效,可以被docker run之后的一个参数代替)。
    11、ENTRYPOINT 设置容器启动时运行的命令(可以有多个,但是只有最后一个生效,CMD或docker run之后的参数会被当作参数传递给ENTRYPOINT。

    示例

    较为全面的 Dockerfile(注:Dockerfile 支持以“#”开头的注释)

    1 FROM busybox
    2 MAINTAINER gsophy@example.net
    3 WORKDIR /testdir
    4 RUN touch tmpfile1
    5 COPY ["tmpfile2","."]
    6 ADD ["bunch.tar.gz","."]
    7 ENV WELCOME "You are in my container, welcome!"

     构建镜像并运行容器,验证镜像内容:

     1 root@ubuntu:~/0107# ls
     2 bunch.tar.gz  Dockerfile  tmpfile2
     3 root@ubuntu:~/0107# 
     4 root@ubuntu:~/0107# docker build -t my-image .
     5 Sending build context to Docker daemon  4.096kB
     6 Step 1/7 : FROM busybox
     7  ---> 3a093384ac30
     8 Step 2/7 : MAINTAINER gsophy@example.net
     9  ---> Running in 397d7d53c4be
    10 Removing intermediate container 397d7d53c4be
    11  ---> f259c0f5e5da
    12 Step 3/7 : WORKDIR /testdir
    13  ---> Running in f0282c6305d0
    14 Removing intermediate container f0282c6305d0
    15  ---> 51e62b757fef
    16 Step 4/7 : RUN touch tmpfile1
    17  ---> Running in f80fb54dd08b
    18 Removing intermediate container f80fb54dd08b
    19  ---> e2590269bb44
    20 Step 5/7 : COPY ["tmpfile2","."]
    21  ---> f60ad0bd8a9e
    22 Step 6/7 : ADD ["bunch.tar.gz","."]
    23  ---> 5835dec7e44e
    24 Step 7/7 : ENV WELCOME "You are in my container, welcome!"
    25  ---> Running in c18629984787
    26 Removing intermediate container c18629984787
    27  ---> a5e0bf651f39
    28 Successfully built a5e0bf651f39
    29 Successfully tagged my-image:latest
    30 root@ubuntu:~/0107# 
    31 root@ubuntu:~/0107# 
    32 root@ubuntu:~/0107# docker run -it my-image
    33 /testdir # ls
    34 bunch      tmpfile1  tmpfile2
    35 /testdir # 
    36 /testdir # echo $WELCOME
    37 You are in my container, welcome!
    38 /testdir # 

    1、进入容器,当前目录即为 WORKDIR。如果 WORKDIR 不存在,Docker 会自动为我们创建。

    2、WORKDIR 中保存了我们希望的文件和目录:
    目录 bunch:由 ADD 指令从 build context 复制的归档文件 bunch.tar.gz,已经自动解压。
    文件 tmpfile1:由 RUN 指令创建。
    文件 tmpfile2:由 COPY 指令从 build context 复制。

    3、ENV 指令定义的环境变量已经生效。

    ---------------------引用来自--------------------------

    https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587610&idx=1&sn=fc2c45c4eb11ecc20d6bba50cc7b8cad&chksm=8d308083ba470995f3e784386f4d09859fa7bdf93b0772d1b03669dd7612c818c6280f7f6b00&scene=21#wechat_redirect

  • 相关阅读:
    IIS使用URL重写(URL Redirect)实现http跳转到https
    iis10中,安装URL重定向,却提示需要IIS7版本以上
    部署ABO+Angular框架要注意的问题
    idea中写Spring遇到internal error
    用微信小程序连接leancloud数据库注意事项~
    static解析
    Data Science Leetcode 精简版
    专题:二叉搜索树
    239. 滑动窗口最大值/双端队列/单调队列
    【转】关闭firefox火狐浏览器下载完成时自动扫描(49.0.2以后版本)
  • 原文地址:https://www.cnblogs.com/gsophy/p/10234717.html
Copyright © 2011-2022 走看看