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