Dockerfile常用参数笔记

Dockerfile

FROM python:3.7-slim    #基础镜像的tag
ENV PYTHONUNBUFFERED 1  #设置环境变量
MAINTAINER cszb   #镜像制作者的信息
# 设置编码
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 .    #将文件从本地路径 .
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 将文件从路径 ,复制文件夹的会默认进去复制的当前目录。如果 不存在, 文件会被创建在默认不存在路径下

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常用参数笔记)