如何在Docker容器中设置环境变量?

在Docker容器中设置环境变量,可以通过以下两种方式进行:

  1. 在docker run命令中使用-e或–env参数:
docker run -d -e MYSQL_ROOT_PASSWORD=password mysql:5.7 

此命令在运行mysql容器时,设置MYSQL_ROOT_PASSWORD环境变量为password。

例如,我们可以运行Nginx容器并设置环境变量:

docker run -d -e NGINX_HOST=localhost -e NGINX_PORT=80 nginx:1.19 

然后在容器内的Nginx配置可以使用$NGINX_HOST和$NGINX_PORT变量:

server {
    listen       $NGINX_PORT;
    server_name  $NGINX_HOST;
}
  1. 在Dockerfile中使用ENV指令:
Dockerfile
ENV MYSQL_ROOT_PASSWORD=password 

此指令在构建镜像过程中设置MYSQL_ROOT_PASSWORD环境变量。
例如:

Dockerfile
ENV NGINX_HOST=localhost 
ENV NGINX_PORT=80

构建镜像后,启动的容器就具有NGINX_HOST和NGINX_PORT这两个环境变量。