docker run -e传递环境变量的过程

 更新时间:2024年01月20日 09:46:13   作者:wnfee  
这篇文章主要介绍了docker run -e传递环境变量的过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

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传递环境变量的文章就介绍到这了,更多相关docker run -e传递环境变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一次Docker中Redis连接暴增的问题排查实战记录

    一次Docker中Redis连接暴增的问题排查实战记录

    这篇文章主要给大家介绍了一次Docker中Redis连接暴增的问题排查的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-06-06
  • docker启动报错问题OCI runtime create failed: container_linux.go:380: starting container process

    docker启动报错问题OCI runtime create failed: c

    这篇文章主要介绍了docker启动报错问题OCI runtime create failed: container_linux.go:380: starting container process,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • 更改Docker默认数据目录解决部署空间不足问题

    更改Docker默认数据目录解决部署空间不足问题

    随着使用 Docker 的时间增加,存储在默认数据目录(通常是 /var/lib/docker)中的数据量也会不断增大,最终可能导致服务器上的存储空间不足,这篇文章将详细介绍如何更改 Docker 的默认数据目录,以便在服务器上释放存储空间并优化资源利用,需要的朋友可以参考下
    2024-06-06
  • docker修改容器网络举例详解

    docker修改容器网络举例详解

    这篇文章主要介绍了docker修改容器网络的相关资料,并详细解释了每种模式的工作原理和使用场景,还提供了如何更改Docker网络模式以实现容器直接连接到主机网络的解决方案,需要的朋友可以参考下
    2025-03-03
  • Docket Desktop安装redis并设置密码方式

    Docket Desktop安装redis并设置密码方式

    在DockerDesktop中安装Redis并设置密码的步骤包括启动Docker、拉取Redis镜像、创建并运行Redis容器设置密码、验证容器运行、连接并验证密码,以及可选的持久化数据设置
    2025-03-03
  • 如何一次重启所有已停止的docker容器

    如何一次重启所有已停止的docker容器

    这篇文章主要介绍了如何一次重启所有已停止的docker容器问题,
    2024-01-01
  • Docker部署portainer的详细步骤

    Docker部署portainer的详细步骤

    Portainer是一个轻量级的docker环境管理UI,可以用来管理docker宿主机和docker swarm集群,今天通过本文给大家介绍Docker部署portainer的步骤,感兴趣的朋友一起看看吧
    2022-01-01
  • Docker安装Mosquitto的实现示例

    Docker安装Mosquitto的实现示例

    mosquitto是一个常用的MQTT应用服务,本文主要介绍了Docker安装Mosquitto的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • 如何解决docker-compose网段路由冲突,docker-compose自定义网络

    如何解决docker-compose网段路由冲突,docker-compose自定义网络

    这篇文章主要介绍了如何解决docker-compose网段路由冲突,docker-compose自定义网络问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Docker 部署 Mysql8.0的方法示例

    Docker 部署 Mysql8.0的方法示例

    这篇文章主要介绍了Docker 部署 Mysql8.0的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10

最新评论