服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 使用Linux命令行传递环境变量给Docker容器

使用Linux命令行传递环境变量给Docker容器

2023-12-12 13:24编程技术汇 Linux

在Linux命令行中,可以使用-e选项来传递环境变量给Docker容器。这样,我们可以在运行容器的同时设置特定的环境变量,以满足应用程序的需求。下面将详细介绍如何使用Linux命令行传递环境变量给Docker容器。 1、Docker Run命令: 最常

在Linux命令行中,可以使用-e选项来传递环境变量给Docker容器。这样,我们可以在运行容器的同时设置特定的环境变量,以满足应用程序的需求。下面将详细介绍如何使用Linux命令行传递环境变量给Docker容器。

1、Docker Run命令:

最常用的方法是在使用docker run命令时,通过-e选项传递环境变量。例如:

docker run -e VARIABLE_NAME=variable_value image_name

这里的VARIABLE_NAME是环境变量的名称,variable_value是要设置的值,image_name是要运行的容器镜像名称。

例如,如果要设置一个名为DB_HOST的环境变量,并将其值设为database.example.com,可以使用以下命令:

docker run -e DB_HOST=database.example.com image_name

2、Docker Compose文件:

如果使用Docker Compose来管理容器化应用程序,则可以在Compose文件中指定环境变量。在environment部分使用key=value的格式设置环境变量。

例如,假设有一个名为app的服务,在Compose文件中设置APP_PORT和APP_ENV两个环境变量,可以这样编写:

services:
  app:
    image: image_name
    environment:
      - APP_PORT=8080
      - APP_ENV=production

3、Dockerfile文件:

另一种方法是在Dockerfile文件中设置环境变量。可以使用ENV关键字来定义环境变量,并为其指定默认值。

使用Linux命令行传递环境变量给Docker容器

例如,假设需要设置一个名为DB_PORT的环境变量,并将其默认值设置为5432,可以这样编写Dockerfile文件:

FROM image_name
ENV DB_PORT=5432

通过在Dockerfile文件中设置环境变量,可以确保每次构建镜像时都会包含特定的环境变量。

4、Shell脚本:

如果需要批量设置多个环境变量,可以编写一个Shell脚本,在脚本中使用export命令来设置环境变量,然后在执行docker run命令时加载该脚本即可。

例如,创建一个名为env.sh的Shell脚本,并在其中设置两个环境变量:

#!/bin/bash
export VAR1=value1
export VAR2=value2

然后,执行以下命令来加载并运行容器:

source env.sh && docker run image_name

通过上述方法,我们可以轻松地在Linux命令行中传递环境变量给Docker容器。无论是使用docker run命令、Docker Compose文件、Dockerfile文件还是Shell脚本,都能满足不同场景下对环境变量的需求。这些环境变量可用于配置容器化应用程序的运行时行为,提供了一种灵活且易于管理的方式来自定义容器环境。

原文地址:https://www.toutiao.com/article/7254507092223885836/

延伸 · 阅读

精彩推荐
  • LinuxLinux折腾记(十):Bash脚本编程语言中的美学与哲学

    Linux折腾记(十):Bash脚本编程语言中的美学与哲学

    这篇文章主要介绍了Linux折腾记(十):Bash脚本编程语言中的美学与哲学,本文讲解了一切皆是字符串、引用和元字符、字符串从哪里来、到哪里去、输入输...

    京山游侠4732019-10-13
  • Linuxlinux tee 命令使用详解(大量实例)

    linux tee 命令使用详解(大量实例)

    在执行Linux命令时,我们既想把输出保存到文件中,又想在屏幕上看到输出内容,就可以使用tee命令要注意的是:在使用管道线时,前一个命令的标准错误...

    linux教程网14912019-11-04
  • Linux10款Linux系统,总有一款适合你

    10款Linux系统,总有一款适合你

    Linux的阵营日益壮大,但要事先声明,本文不是盘点哦。因为市面上有好几百款发行版,每款都是有差异的,不可能在这里全部罗列出来,所以小编只整理...

    今日头条5832020-07-06
  • LinuxWget一直显示英国中部时间怎么解决?wget关闭进度输出

    Wget一直显示英国中部时间怎么解决?wget关闭进度输出

    wget一直显示英国中部时间,很让人郁闷,本来英文是eta (Estimated Time of Arrival 预计到达时间),翻译错了,我改正这个问题的时候发现wget的进度条也恢复...

    linux教程网3172019-10-26
  • LinuxLinux SYN攻击原理和应对方法

    Linux SYN攻击原理和应对方法

    这篇文章主要介绍了Linux SYN攻击原理和应对方法,SYN攻击主要是利用TCP协议的缺陷,来导致系统服务停止正常的响应,本文就讲解了其原理和应对方法,需要的朋...

    Linux教程网3302019-09-28
  • Linux在linux下玩转带有超时时间的connect函数

    在linux下玩转带有超时时间的connect函数

    今天小编就为大家分享一篇关于在linux下玩转带有超时时间的connect函数,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起...

    stpeace7102022-09-01
  • LinuxLinux下新增用户、指定用户组、家目录、获取sudo权限方式

    Linux下新增用户、指定用户组、家目录、获取sudo权限方式

    这篇文章主要介绍了Linux下新增用户、指定用户组、家目录、获取sudo权限方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方...

    久远成传说4732023-05-02
  • LinuxLinux下rar命令详解

    Linux下rar命令详解

    通常rar命令由一个主命令加若干选项(可选)构成,操作文档为操作施加的.rar文件对象,文件或文件列表为对操作文档实现修饰的具体文件或目录(可选)...

    Linux教程网3272020-04-03