docker 通过dockerfile设置动态参数

dockerfile设置动态参数


一般的dockerfile样例

FROM python:3.6  # 第一行必须指定基于的基础镜像

# 维护者信息
MAINTAINER docker_user docker_user@email.com

# 更改工作目录
WORKDIR /app


ADD . /app

# 镜像的操作指令
RUN pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt

# 容器启动时执行命令
CMD ["python","start.py"]  #start.py是启动文件,文件中输入为/app/input,输出为/app/result

设置动态参数的dockerfile

FROM python:3.6
WORKDIR /app
ADD . /app
#RUN pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements1.txt
#RUN pip install mkl-service
#RUN pip install tensorboard
EXPOSE 80

ENV input1=""   #添加输入参数
ENV result=""   #添加输出参数
ENTRYPOINT ["sh","-c","python start.py --input=$input1 --result=$result1"]
#ENTRYPOINT ["python","start.py"]

EXPOSE
  格式为 EXPOSE […] 。
  例如:
  EXPOSE 2280 8443
  告诉Docker服务端容器暴露的端口号,供互联系统使用。在启动容器时需要通过-P,Docker主机会自动分配一个端口转发到指定的端口;使用-p,则可以具体指定哪个本地端口映射过来。

ENV
  格式为 ENV 。指定一个环境变量,会被后续RUN指令使用,并在容器运行时保持。

ENTRYPOINT
  有两种格式:
  ENTRYPOINT[“executable”,“paraml”,“param2”]
  ENTRYPOINT command paraml param2(shell中执行)。
  配置容器启动后执行的命令,并且不可被 docker run提供的参数覆盖。
  每个Dockerfile中只能有一个ENTRYPOINT,当指定多个ENTRYPOINT时,只有最后一个生效。

CMD
  支持三种格式:

CMD[“executable”,“param1”,“param2”]使用exec执行,推荐方式。
CMD command paraml param2在/bin/sh中执行,提供给需要交互的应用。
CMD[“param1”,“param2”]提供给ENTRYPOINT的默认参数。
  指定启动容器时执行的命令,每个Dockerfile只能有一条CMD命令。如果指定了多条命令,只有最后一条会被执行。
  如果用户启动容器时候指定了运行的命令,则会覆盖掉CMD指定的命令。

进行测试

文件目录:/kyh/tarbao下存在data,dockerfile,start.py
在这里插入图片描述

数据文件目录:/kyh/tarbao/data/input/aaaa aaaa文件的内容 lalallala

创建镜像

docker build -t kyh_1  .

启动docker

以下为执行 docker run 时,其它常见的参数:
-i:交互式执行容器。容器控制台只支持后台运行容器,本参数不支持。
-t:分配虚拟终端,本参数不支持。
-e:容器运行的环境变量。

docker run -it -v /kyh/tarbao/data/input:/app/input -v /kyh/tarbao/data/result:/app/result -e input1="aaaa" -e result='result' kyh_1
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker部署Dockerfile是通过使用Docker来构建和运行镜像的一种方式。可以使用手动部署的方式来熟悉部署流程,也可以使用插件方式来编写Dockerfile文件。 对于手动部署,首先需要修改docker配置,开放远程部署(上传)端口。可以通过编辑docker.service文件,在ExecStart=后添加配置"-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock"来实现。 对于使用插件的方式,则是通过配置Dockerfile的命令参数来生成Dockerfile文件,并最终根据jar包和Dockerfile构建镜像。 在进行Docker部署之前,首先需要进行Docker的安装和部署。具体的流程包括配置Docker、测试Docker、镜像的分层以及镜像的构建。 Docker部署Dockerfile的具体步骤包括: 1. 配置Docker,确保远程部署(上传)端口已经开放。 2. 使用插件方式或手动方式编写Dockerfile文件。 3. 将需要的jar包和Dockerfile放置在同一个目录下。 4. 使用命令行工具进入到该目录,并执行docker build命令来构建镜像。 5. 根据构建后的镜像,运行相应的容器。 通过以上步骤,就可以成功部署Dockerfile并运行相应的容器。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [docker实战之Dockerfile构建部署项目(三)](https://blog.csdn.net/weixin_42322925/article/details/121697564)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Docker 1 (安装部署、Dockerfile详解)](https://blog.csdn.net/qq_38664479/article/details/119488160)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值