zoukankan      html  css  js  c++  java
  • Dockerfile

    Dockerfile创建:

    大:文件首字母必须大写,且文件名必须为Dockerfile。

    空:尽量让Dockerfile文件在一个空的文件夹中。

    单:一个Dockerfile只实现一个功能。

    少:尽量少写Dockerfile的代码。

    Dockerfile文件的定义必须严格遵守以上四点。

    Dockerfile命令:

    FROM命令:导入镜像的命令,相当于python中的import,其导入的镜像相当于python类中的父类。FROM命令必须放在第一条。

    FROM image:tag

    LABEL命令:维护者介绍命令,可有可无。

    RUN命令:执行RUN命令后的语句,相当于/bin/bash命令行。

    RUN touch 1.txt

    WORKDIR命令:指定工作目录,相当于cd命令,指定工作目录后如果目录存在则直接进入,如果目录不存在则自动创建并进入。

    WORKDIR /code

    EXPORSE命令:设置端口命令,设置容器开放的端口。

    EXPOSE port

    COPY命令:复制命令,可以将宿主机的目录或文件复制到容器的文件系统中。

    COPY 宿主机目录或文件路径:容器目录或文件路径

    VOLUME命令:定义数据卷命令,可以通过run容器时指定数据卷来实现宿主机和容器文件系统共享目录或文件。

    VOLUME 共享数据卷的目录或文件路径

    CMD命令:run容器时执行的命令。

    CMD ["touch","a.html"]

    注意:CMD命令格式会被解析成JSON数据,所以必须使用双引号。

    Dockerfile的构建:

    当我们编写完Dockerfile文件后,需要执行一下命令,就可以将Dockerfile构建成一个自定义镜像。

    sudo docker build -t image-name:tag .

    注意:

    这里的.表示在当前目录

    Dockerfile实战案例:

    利用COPY实现:

    1. 编写Dockerfile文件

    FROM python:3.5
    
    LABEL maintainer="Chester"
    
    RUN pip install django==1.11.11 -i https://mirrors.aliyun.com/pypi/simple/
    
    WORKDIR /code
    
    COPY ./book /code
    
    EXPOSE 8000
    
    CMD ["python3","manage.py","runserver","0.0.0.0:8000"]

    2. 将Docker文件构建成镜像

    sudo docker build -t copy-django:v1.0 .

    3. 运行镜像

    sudo docker run -d copy-django:v1.0

    利用VOLUME实现

    1. 编写Dockerfile文件

    FROM python:3.5
    
    RUN pip install django==1.11.11 -i https://mirrors.aliyun.com/pypi/simple/
    
    WORKDIR /code2
    
    VOLUME /code2
    
    EXPOSE 8000
    
    CMD ["python3","manage.py","runserver","0.0.0.0:8000"]

    2. 构建镜像

    sudo docker build -t volume-django:v1.0

    3. 运行镜像

    sudo docker -d -P -v /home/Desktop/book:/code2 --name=v-django volume-django:v1.0

    看看Dockerfile是否构建成了镜像:

    sudo docker images

    该花的钱要花,该吃的饭要吃。
  • 相关阅读:
    scrapy中selenium的应用
    Django的锁和事务
    redis
    【leetcode】187. Repeated DNA Sequences
    【leetcode】688. Knight Probability in Chessboard
    【leetcode】576. Out of Boundary Paths
    【leetcode】947. Most Stones Removed with Same Row or Column
    【leetcode】948. Bag of Tokens
    【leetcode】946. Validate Stack Sequences
    【leetcode】945. Minimum Increment to Make Array Unique
  • 原文地址:https://www.cnblogs.com/chao666/p/12358214.html
Copyright © 2011-2022 走看看