美文网首页
Dockerfile常用参数笔记

Dockerfile常用参数笔记

作者: 卫彬TM | 来源:发表于2020-07-17 13:50 被阅读0次

    Dockerfile

    FROM python:3.7-slim    #基础镜像的tag
    ENV PYTHONUNBUFFERED 1  #设置环境变量
    MAINTAINER cszb <wdjlwz@163.com>  #镜像制作者的信息
    # 设置编码
    ENV LANG en_US.UTF-8   
    # 同步时间
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    
    # 3. 安装依赖包
    RUN pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/
    RUN pip3 install --upgrade pip
    ADD requirements.txt .    #将文件从本地路径 <src,复制添加到容器内部路径 <dest>.
    RUN pip3 install -r requirements.txt
    
    # 4.复制业务程序
    RUN cd /
    ADD AutoLink .
    WORKDIR .
    
    ## 5. 启动
    CMD ["python","AutoLink.py","runserver","-h", "0.0.0.0","-p","8000"]
    EXPOSE 5000  8000  #暴露服务端口
    

    ADD

    ADD 将文件从路径 <src复制添加到容器内部路径 <dest>,复制文件夹的会默认进去复制的当前目录。如果 <dest> 不存在, 文件会被创建在默认不存在路径下

    CMD

    CMD 指令用3种用法:

    CMD ["executable","param1","param2"] 像exec
    CMD ["param1","param2"]
    CMD command param1 param2 像shell
    

    第一种用法:运行一个可执行的文件并提供参数。
    第二种用法:为ENTRYPOINT指定参数。
    第三种用法(shell form):是以”/bin/sh -c”的方法执行的命令。

    如果用户可能在执行 docker run 的时候指定参数,那么会把CMD里的参数覆盖。
    有点类似像开机启动项

    ENTRYPOINT

    An ENTRYPOINT allows you to configure a container that will run as an executable.它可以让你的容器功能表现得像一个可执行程序一样。
    ENTRYPOINT有两种写法:
    写法一:ENTRYPOINT ["executable", "param1", "param2"] (the preferred exec form)
    写法二:ENTRYPOINT command param1 param2 (shell form)
    你也可以在docker run 命令时使用–entrypoint指定(但是只能用写法一)

    创建命令

    docker build -f Dockerfile -t datagear:1.9.0 .
    docker build -f[指定Dockerfile文件] -t [构建镜像后的tag] .[构建的文件目录]
    PS.构建建议新建目录,只放构建镜像需要的文件,build开始"Sending build context to Docker daemon 194.5MB" 将目录下文件全部sending,若目录下很多文件,可能构建很慢或者失败。

    相关文章

      网友评论

          本文标题:Dockerfile常用参数笔记

          本文链接:https://www.haomeiwen.com/subject/bftghktx.html