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

该花的钱要花,该吃的饭要吃。
原文地址:https://www.cnblogs.com/chao666/p/12358214.html