docker run -e通过传递环境变量,来运行多个环境的程序

1. Dockerfile

FROM openjdk:8-jdk-alpine

MAINTAINER fengqiangboy shenzhen <fengqiangboy@gmail.com>

RUN mkdir -p /usr/local/proxy-server

COPY startup.sh /usr/local/proxy-server

RUN cd /usr/local/proxy-server && \
chmod +x startup.sh

WORKDIR /usr/local/proxy-server
# 设置环境变量 USERNAME 默认值为 admin,后面可以通过docker run -e USERNAME="XXXXXX"修改,这个环境变量在容器里也可以$USERNAME获取
ENV USERNAME admin

RUN echo 'USERNAME=' $USERNAME  # 打印一下默认值

# 运行 startup.sh脚本,$USERNAME传递参数到脚本中,不能用 CMD []这种形式,这种方式读取不到变量
CMD sh startup.sh $USERNAME

2. startup.sh

#!/bin/bash

MODULE=$1  # 定义变量为上面传的 $USERNAME 第一个参数
echo 'MODULE=' ${MODULE} # 打印

如果想替换参数使用命令sed -i "s/<USERNAME>/$USERNAME/" config.properties,必须用双引号,用单引号不能读取变量

查看最终文件目录

[root@wanfei test-docker]# ls
Dockerfile  startup.sh

3. 制作镜像

[root@wanfei test-docker]# docker build -t www/test-docker .

4. 运行镜像

[root@wanfei test-docker]# docker run --name docker -e USERNAME="WANFEI" www/test-docker
MODULE= WANFEI
打印成功 WANFEI

参考文章:docker run -e传递环境变量

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Docker run 命令可以使用 -e 参数来设置容器的环境变量,例如: docker run -e "ENV_VAR=value" image_name 这将在容器中设置一个名为 ENV_VAR 的环境变量,其值为 value。可以使用多个 -e 参数来设置多个环境变量。 ### 回答2: 在使用Docker时,可以通过`docker run`命令来运行一个容器。在`docker run`命令中,环境变量是一个重要的参数。环境变量可以在容器内部定义和使用,它可以影响容器的行为和配置。 使用`-e`参数可以在`docker run`命令中设置环境变量。例如,可以使用以下命令设置一个名为`ENV_VAR`的环境变量,并将其值设置为`hello`: ``` docker run -e ENV_VAR=hello image_name ``` 通过这个命令,容器在启动时会自动设置一个名为`ENV_VAR`的环境变量,值为`hello`。在容器内部,可以通过读取这个环境变量来获取其值。例如,在`Dockerfile`中可以使用`$ENV_VAR`来引用该环境变量。 在Docker中,使用环境变量的场景非常广泛。它可以用于配置应用程序,例如设置数据库的连接字符串、配置文件的路径等。它还可以用于传递参数,例如指定运行模式或调整容器的行为。 此外,通过环境变量,还可以方便地在不同的容器之间进行通信和共享数据。例如,在一个容器中设置一个环境变量,然后在另一个容器中读取该环境变量,以实现容器之间的数据共享和协作。 总的来说,通过`docker run`命令设置环境变量可以方便地影响和配置容器的行为。它是在Docker中非常重要和常用的功能之一。 ### 回答3: 在Docker中,我们可以通过使用环境变量来定制容器的运行环境。当我们运行一个容器时,可以使用`docker run`命令来设置容器的环境变量。 在`docker run`命令中,可以通过`-e`选项后面跟上环境变量的名称和值来设置环境变量。例如,`docker run -e "ENV_NAME=env_value" image_name`。这将会将一个名为`ENV_NAME`的环境变量设置为`env_value`的值。 在容器启动后,该环境变量将会被应用程序或脚本所使用。这样可以使得容器的行为更加灵活,并且可以根据需要进行定制。 然而,需要注意的是,使用`docker run`命令设置的环境变量仅在容器的运行期间有效。一旦容器停止并重新启动,这些环境变量将会丢失。如果希望设置永久的环境变量,可以通过容器中的配置文件或者Dockerfile进行设置。 总而言之,通过`docker run`命令设置环境变量可以在容器运行时定制容器的运行环境,使得容器的行为更加灵活和可配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值