一、在脚本中添加一个Dockerfile(如图)
1.配置Dockerfile里面的参数
2.Dockerfile文件参数示例
- FROM:指定一个基础镜像
- WORKDIR:设置工作目录,指定工作在哪个路径下
- RUN:在容器构建时就要执行的命令
- ADD/COPY:将本地(宿主机)上的文件或目录复制到容器中
- LABEL 指令会添加元数据到镜像
- CMD:指定容器启动时(真正运行时)默认运行的命令(脚本)
FROM python:3.7
#这里指定python版本号为3.7
LABEL authors="chenmin"
#指定作者
RUN mkdir -p /chen
#创建一个文件夹
WORKDIR /chen
#设置容器中的工作目录为chen
ADD . .
#将当前目录中的所有文件复制到容器中的当前目录中
ENV PYTHONUNBUFFERED=0
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
RUN python -m pip install --upgrade pip -i https://pypi.douban.com/simple
RUN pip install -U pip
RUN pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
RUN pip config set install.trusted-host mirrors.aliyun.com
RUN pip install -r requirements.txt
CMD ["python", "main.py"]
二、在脚本中添加一个requirements.txt
1.配置requirements.txt里面的参数
-
requirements.txt
是一个文本文件,这里面参数是你使用pip 命令安装的所有第三方模块及对应模块的依赖包及对应版本;它通常用于管理项目的依赖关系,以确保在不同的环境中能够准确地安装相同的依赖。 - 在
requirements.txt
文件中,每一行表示一个依赖项,通常采用<package-name>==<version>
的格式来指定依赖的包及其版本。例如:
requests==2.25.1 numpy==1.19.4 pandas==1.1.5
- 上述示例中,
requirements.txt
文件列出了项目所需要的三个依赖包,分别是requests
、numpy
和pandas
,并指定了它们的版本号。
通过执行以下命令,可以根据 requirements.txt
文件自动安装项目所需的依赖包:
pip install -r requirements.txt
三、启动docker
打开桌面上的docker~
四、拉取python镜像
docker pull python
这里不指定版本就是最新版本
之后想改版本号可以引用下面的方法:
docker tag [镜像名称]:[镜像版本号] [新镜像名称]:[新镜像版本号]
四、构建自己的镜像
在 Dockerfile 文件的存放目录下,执行构建动作。
以下示例,通过目录下的 Dockerfile 构建一个piliang:v1.0.1 (镜像名称:镜像标签)
这里我给我的镜像名称起的是piliang
注:最后的 . 代表本次执行的上下文路径
docker build -t piliang:v1.0.1 .
上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。
解析:由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。实际的构建过程是在 docker 引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。
如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。
五、启动docker镜像并挂载文件夹
docker run -it -v D:\mm:/mm_file piliang:v1.0.1
- docker run -it 启动镜像
- piliang:v1.0.1 镜像名称和版本
- -v 挂载本地文件夹到docker容器
- D:\mm 本地文件夹(python读取和存放数据的地址)
- /mm_file docker容器的文件夹,固定路径,不可变更