8、dockerfile-构建镜像

类似shell脚本,以自动化方式实现(只能实现一个镜像)

 

1. Dockerfile 的作用

  1)找一个镜像: ubuntu

  2)创建一个容器: docker run ubuntu

  3)进入容器: docker exec -it 容器 命令

    4)操作: 各种应用配置                        

    5)构造新镜像: docker commit

 

 2. 实例:

  1)创建dockerfile目录

    mkdir /docker/images/nginx -p

    cd /dcoekr/images/nginx

    cp /etc/apt/sources.list ./

 

  2)创建dockerfile文件

    # 基础镜像

    FROM ubuntu

    # 镜像作者

    MAINTAINER mowu 000000@qq.com

    # 执行命令

    ADD ["sources.list","/etc/apt/sources.list"]  # 相当于把宿主机当前目录下sources.list中的内容映射到容器/etc/apt/sources.list文件中

    RUN apt-get update && apt-get install nginx -y

    # 对外端口

    EXPOSE 80

    # 容器运行

    ENTRYPOINT ["/usr/sbin/nginx","-g","daemon off;"]

 

  3)构建镜像(类型执行shell脚本)

    docker build -t nginx:v0.1 .

 

3. 基础指令:

ADD:

  格式:

  ADD <src>... <dest>

  ADD ["<src>",... "<dest>"]

  解释:

    将指定的 <src> 文件复制到容器文件系统中的 <dest>

    src 指的是宿主机,dest 指的是容器

 

  所有拷贝到 container 中的文件和文件夹权限为 0755,uid 和 gid 为 0

  如果文件是可识别的压缩格式,则 docker 会帮忙解压缩

  注意:如果源文件是个压缩文件,则 docker  会自动帮解压 到指定的容器目录中

 

COPY:

  格式:

  COPY <src>... <dest>

  COPY ["<src>",... "<dest>"]

  解释:                

    COPY 指令和 ADD 指令功能和使用方式类似。只是 COPY 指令不会做自动解压工作。

    单纯复制文件场景,Docker 推荐使用 COPY

 

WORKDIR:

  格式:

  WORKDIR /path/to/workdir (shell 模式)

  解释:

    切换目录,为后续的 RUN、CMD、ENTRYPOINT 指令配置工作目录。 相当于 cd

    可以多次切换(相当于 cd 命令),

    也可以使用多个 WORKDIR 指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。例如

  举例:

    WORKDIR /a

    WORKDIR b

    WORKDIR c

    RUN pwd

    则最终路径为 /a/b/c

 

posted on 2019-02-01 11:09  MMoving  阅读(75)  评论(0)    收藏  举报

导航