千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > docker -e 环境变量

docker -e 环境变量

来源:千锋教育
发布人:xqq
时间: 2023-11-23 06:57:13 1700693833

在使用Docker构建应用程序时,环境变量是非常重要的一部分。其中的“-e”参数可以方便地将环境变量引入到运行中的容器中,这使得部署和管理容器变得更加灵活和高效。

一、设置基本环境变量

docker run -p 8080:80 -e APP_COLOR=blue my-app

以上命令中,“-e”参数用来设置应用程序的颜色,通过将该环境变量设置为“blue”,我们可以很容易地调整应用程序的样式。在本例中,我们使用“my-app”作为容器名称,使其在端口8080监听HTTP流量。

为环境变量指定值时需要记住一点,那就是环境变量值必须是字符串类型。如果需要传递一个布尔值或数字,可以将其转换为字符串,例如“true”或“123”。

二、使用多个环境变量

docker run -p 8080:80 -e APP_COLOR=blue -e APP_ENV=dev -e DEBUG=true my-app

当需要引入多个环境变量时,只需通过多次添加“-e”参数即可。在上面的示例中,我们添加了两个新的环境变量,分别为“APP_ENV”和“DEBUG”。这说明我们可以在容器运行时指定多个环境变量,并且可以设置不同的值来控制应用程序的一个或多个方面。

三、从文件中读取环境变量

docker run -p 8080:80 --env-file my-env-file my-app

在处理大量环境变量时,单独为每一个指定值变得不切实际。因此,Docker允许从文件中读取环境变量。在上例中,我们通过“--env-file”命令行选项指定了一个包含环境变量的文件。“my-env-file”是一个文本文件,其中包含已经设置好的环境变量列表,每行一个。在容器启动时,Docker会自动读取该文件,将其中的每个环境变量都添加到容器的环境变量中。

四、使用变量进行参数化

docker run -p 8080:80 -e APP_VERSION=1.0 my-app:${APP_VERSION}

有时候,我们需要在容器的不同实例中设置不同的环境变量值。例如,假设有若干个版本的应用程序镜像,这些镜像包含不同的应用程序版本。为了能够在创建和管理容器时灵活地指定镜像名称,你可以使用变量进行参数化。在上面的示例中,我们使用环境变量“APP_VERSION”来标识使用的应用程序版本。通过在容器名称中使用这个环境变量,应用程序的版本将根据环境变量的值而变化。

五、结合Docker Compose使用环境变量

version: '3.8'
services:
  my-app:
    image: my-app:${APP_VERSION}
    ports:
     - "8080:80"
    environment:
     - APP_COLOR=${APP_COLOR}
     - APP_ENV=${APP_ENV}
     - DEBUG=${DEBUG}

Docker Compose是一种非常常见的工具,它可以帮助我们管理容器和应用程序之间的依赖关系。虽然我们可以在Docker命令中设置环境变量,但是在Docker Compose中,我们可以直接在配置文件中设置环境变量,这使得我们可以更轻松地管理和跟踪环境变量的值与使用。

在上面的示例中,我们通过环境变量“APP_VERSION”来指定容器所使用的应用程序镜像的版本。在“environment”选项中,我们可以添加需要设置的任何环境变量。这些环境变量将自动传递给docker run命令,并将其添加到容器的环境中。此外,由于在配置文件中设置环境变量非常容易,因此我们可以使用此方法进行参数化以配置多个容器。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT