首页 > 编程语言 >python3代码转换成docker镜像启动

python3代码转换成docker镜像启动

时间:2024-03-08 11:36:45浏览次数:29  
标签:opt logs app test 镜像 docker python3

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是倒序)

 

 

   

标签:opt,logs,app,test,镜像,docker,python3
From: https://www.cnblogs.com/anhao-world/p/18060594

相关文章

  • Docker搭建Mysql集群
    一、新建主服务器示例3307dockerrun-p3307:3306--namemysql-master\-v/docker-volume/mysql-master/log:/var/log/mysql\-v/docker-volume/mysql-master/data:/var/lib/mysql\-v/docker-volume/mysql-master/conf:/etc/mysql\-eMYSQL_ROOT_PASSWORD=root\-d......
  • Docker之CPU和内存磁盘设置(八)
    前言Docker基本掌握使用方式,但是在限制其资源方面还没有接触。本篇就简单介绍一下有关CPU、内存等配置。让每个容器的资源分配更加合理,也能够避免一些容器遇到内存泄漏,CPU过载等问题影响其他容器的正常运行。一、配置文件Docker中,配置文件可以用来调整守护进程的行为,包......
  • docker commit命令,本地镜像生成
    1.本地镜像生成dockercommit-m"commitInfo"-a="authorName"containerId新创建的目标镜像名:[标签名]  镜像的提交,可以让我们不断去叠加镜像: https://www.bilibili.com/video/BV1gr4y1U7CY?p=25&spm_id_from=pageDriver&vd_source=7ce721b64f52f392bdafe83543918639......
  • Docker搭建Redis集群
    一、创建Redis网络dockernetworklsdockernetworkcreateredis--subnet192.168.100.0/24dockernetworkinspectredis二、创建Redis配置文件forportin$(seq16);\do\mkdir-p/docker-volume/redis-cluster/node-${port}/conftouch/docker-volume/redis-c......
  • docker镜像分层概念
          ......
  • docker https 的私有 registry 搭建与测试
     1.registry服务器上的配置#1.生成自签名证书mkdir-pcertsopensslreq-newkeyrsa:4096-nodes-sha256-keyoutcerts/domain.key-x509-days36500-outcerts/domain.crt#一路回车,等到CommonName(eg,yournameoryourserver'shostname)[]:时输入域......
  • Docker之Window图形界面(七)
    前言前面介绍docker基本都是以控制台命令行为主,但是对于不太熟悉命令行的人来说,确实有点麻烦。再者控制台很多配置虽然能够配置,对于我们长期使用图形界面开发者来看,还是有界面比较容器上手。总的来说,Docker在Windows图形界面上的优势在于提供了直观、便捷和高效的管理和......
  • Docker使用docker-compose.yml文件(六)
    前言前面介绍的都是单个容器部署,对于多容器部署也是一个个部署。这里Docker开发了docker-compose.yml。它是一个YAML格式的文件,用于定义和运行多容器的Docker应用程序。它允许你使用单个命令来启动、停止和重启应用程序,以及管理应用程序依赖的服务。一、配置yml文件versio......
  • docker部署监控Prometheus+Grafana
    目录一、Prometheus简介二、Prometheus基本原理三、Prometheus架构图四、Prometheus特性五、Prometheus组件六、Prometheus服务发现七、部署环境八、部署主机九、部署Prometheus1、安装docker2、启动docker并设置开机自启3、下载镜像包4、创建prometheus挂载目录5、创建prometheus......
  • ARM平台实现Docker容器技术
    什么是Docker?(1)Docker的架构 Docker是一个开源的应用容器引擎,让开发者可打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,亦可实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。使用Docker,可像管理应用程序一样管理基础结构......