Docker-重启后编写环境

Docker-compose env after reboot

我在 docker 机器上部署了一个容器,使用 restart: always 作为重启策略。 如果我没记错的话,这应该会在机器重启时重启容器。

但是环境变量会发生什么?

它们被保存了吗?如果是这样,它们存储在哪里?

谢谢!

这些值与容器启动时的值一起保留。您可以考虑以下文件

version: '3'
services:
  envtest:
    image: alpine
    command: sh -c "echo X=$$X and Y=$$Y && exec tail -f /dev/null"
    restart: always
    environment:
      X: ${X}
    env_file:
      - env_file

.env

X=Y

env_file

Y=Z

运行 使用下面的容器然后重启

docker-compose up -d

现在更改文件如下

X=A
Y=B

然后重启系统运行

$ docker-compose logs
Attaching to envtest_envtest_1
envtest_1  | X=Y and Y=Z
envtest_1  | X=Y and Y=Z

因此,如您所见,它也将具有环境,并且不会拾取您使用的源 env 文件中发生的任何更改