zoukankan      html  css  js  c++  java
  • Docker 创建镜像Dockerfile

    通过dockerfile可以创建属于自己的镜像

    1. dockerfile文件名称:Dockerfile

    1. 创建Dockerfile文件

    # 可以使用#号指定注释信息
    # 文件名一般为Dockerfile
    # 可以使用Dockefile文件来自定义镜像
    # 指定base image,基本镜像,FROM一般为第一行,
    FROM 基本镜像名称:tag版本编号 # 如果本地没有,会自动从docker hub远程仓库下载,否则直接使用本地仓库提供的,alpine镜像比较小因此经常被使用 FROM python:alpine # 使用LABEL指定镜像的元数据信息(提示说明作用) # LABEL key=value # 如果value中有空格,需要使用引号括起来或者使用进行转义 LABEL maintaier="xxx <xxx100@qq.com>" LABEL description="define Dockerfile Demo" WORKDIR /app/ #WORKDIR /one # COPY用于将宿主机中的资源复制粘贴至容器中 # COPY 宿主机路径 容器中的路径 # 如果容器中指定的路径不存在,会自动创建 # 如果将一个文件复制到容器中,指定的容器路径建议添加/,[.]代表当前路径 # COPY fun.py /app/ # COPY requirements.txt /app/ #COPY . /app COPY . . # ADD与COPY类似,用于将宿主机中的资源复制到容器中 # 可以将远程文件下载之后,复制到容器中:ADD 远程文件链接 容器目录 # 也可以将本地的压缩文件解压之后,复制到容器中:ADD 本地压缩文件 容器目录 # ADD https://github.com/docker-library/python/raw/master/update.sh . # 相当于cd命令,用于容器进入到某个目录中 # 如果指定的路径不存在,会自动创建 # WORKDIR /app/
    # RUN用于在容器中执行linux命令 # 每一个RUN指令会独自占一层 # 为了优化镜像的大小,如果有多条命令,可以使用一个RUN指令,多条命令之间&&或者; 使用进行换行
    RUN pip install -r requirements.txt #RUN pip install -r requirements.txt && cat /etc/passwd && grep root /etc/passwd && # ip a # RUN ls /
    # ENV可以指定环境变量
    ENV username=lemon password=123456 program_name="fun.py" # 指定容器中哪些目录可以与宿主机进行共享 VOLUME /app/ # 指定容器中可以暴露的端口
    # docker run --rm -p 1111:8000 myfun:v1 (1111为宿主机端口,8000为容器端口)
    EXPOSE 8000

    # CMD 指定容器运行(docker run )时,默认会执行的命令
    # 如果在运行容器时,指定了其他命令,那么CMD命令会被覆盖 # 如果有多个CMD命令,只有最后一个会被执行 # 有两种格式,shell格式、exec格式 # 1.exec格式:[
    "命令的绝对路径", "参数1", "参数2"] # CMD ["python", "fun.py"] # CMD ["/bin/ls", "/", "/etc"] # 2.shell格式:命令的绝对路径 参数1 参数2 # CMD python fun.py #CMD ["python", $program_name]

    # EBTRYPOINT与CMD类似,当运行容器时,如果指定了其他命令,ENTRYPOINT不会被忽略 # 如果有多个ENTRYPOINT,那么只有最后一个ENTRYPOINT被执行
    # 往往与CMD连用,cmd中的参数作为entrypoint最后一个参数 #
    ENTRYPOINT ["python", "fun.py"] #ENTRYPOINT ["cat", "fun.py"] #CMD ["/etc/passwd"] # 相当于执行 cat fun.py ,cat /etc/passwd ENTRYPOINT ["/bin/sh", "docker-entrypoint.sh"]
    
    

    创建镜像安装包,通过Dockerfile文件来构建镜像

    # docker build -t 镜像名:tag -f 指定Dockerfile文件路径 .
    # -t 指定构建的镜像名称和tag,如果不指定tag,默认使用latest,镜像名一般为用户名/镜像名称
    # -f 指定Dockerfile文件路径,如果命名为Dockerfile,且在当前路径下,那么可以不用指定,否则必须指定
    # . 代表将当前路径作为构建上下文
  • 相关阅读:
    kaggle CTR预估
    基于大规模语料的新词发现算法【转自matix67】
    vim E437: terminal capability "cm" required
    makefile 中的符号替换($@、$^、$<、$?)
    【转】Makefile 中:= ?= += =的区别
    python urljoin问题
    python 写文件刷新缓存
    python Popen卡死问题
    nohup 日志切割
    换行和回车野史
  • 原文地址:https://www.cnblogs.com/erchun/p/14826775.html
Copyright © 2011-2022 走看看