python3代码转换成docker镜像启动

1.打包成docker镜像来使用

切到Tags,搜索3.11

选择 python:3.11.4-slim-bullseye

2.在压测脚本的根目录中,创建 Dockerfile 文件:

 

FROM python:3.11.4-slim-bullseye

WORKDIR /opt/app
COPY requirements.txt ./

ENV host=null
ENV port=null
ENV onlyResetJob=null

RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
COPY . .

ENTRYPOINT ["/bin/sh", "-c", "python skq_test.py --host=${host} --port=${port} --onlyResetJob=${onlyResetJob}"]
● Dockerfile 是一个文本文件,里面包含有用于构建镜像的各种指令,如:FROM、WORKDIR、COPY、RUN、ENTRYPOINT等
● Dockerfile 名称一般是固定写法,且无后缀名
● Dockerfile 可使用的指令、语法,参考官方文档:https://docs.docker.com/engine/reference/builder/
  ○ 指令大小写不敏感,但为了和指令中用到的参数区别开来, 一般习惯用大写
  ○ 常用指令简介
    ■ FROM:Dockerfile的第一条指令必须是 FROM,用于指定基础镜像。在FROM前面可以有 ARG,用于给FROM提供动态参数
    ■ WORKDIR:给 RUN、CMD、ENTRYPOINT、COPY等设置工作目录,如果目录不存在,则自动创建。例子:WORKDIR /opt/app  指定工作目录为 /opt/app,如果/opt/app不存在,则自动创建,后续的RUN、COPY等指令,都是在 /opt/app 目录下执行的
    ■  COPY:把文件或文件夹复制到镜像。最简单的例子: COPY . .     把全部的文件或文件夹(.dockerignore里排除的,不要)复制到镜像当前的工作目录,也就是 WORKDIR指定的目录
    ■ ENV:配置环境变量的
    ■ RUN:这是最常用的指令,用于执行软件安装、文件修改删除、依赖包安装、源代码编译等
    ■ ENTRYPOINT:当启动容器时要执行的脚本
● 一个特殊的 .dockerignore 文件
  ○ 用于在 docker build 时把一些不需要的文件、文件夹排除掉,类似于 .gitignore

 

3.把整个压测脚本,压缩成 .zip 格式的文件,上传打docker虚拟环境,进行解压。解压后cd 到目录下执行构建命令:docker build -t test:v1 .

注释:最后有个点是必须的

查看镜像:

 启动镜像

docker run -d -v /opt/test/logs:/opt/app/logs -e host=127.0.0.1 -e port=9001 -e onlyResetJob=0 docker_iamge_test:v1

这个 docker run 命令的用法如下:

 -d:在后台运行容器(detached mode)。
 -v /opt/test/logs:/opt/app/logs:将本地目录 /opt/test/logs 挂载到容器内的 /opt/app/logs 目录,实现数据卷的共享。
 -e host=127.0.0.1:设置容器内的环境变量 host 的值为 127.0.0.1。
 -e port=9001:设置容器内的环境变量 port 的值为 9001。
 -e onlyResetJob=0:设置容器内的环境变量 onlyResetJob 的值为 0。
 docker_image_test:v1:要运行的Docker镜像名称及版本标签。
 综合起来,这个命令的作用是在后台运行一个基于 docker_image_test:v1 镜像的容器,同时将本地 /opt/test/logs 目录挂载到容器内的 /opt/app/logs 目录,设置了三个环境变量 host、port 和 onlyResetJob 的值。
 
4.Dockerfile指令和layer的对应关系(Linux是倒序)

 

 

 
 
posted @ 2024-03-08 11:20  安好_世界  阅读(318)  评论(0编辑  收藏  举报