0

我只是想了解如何使用 exec 函数处理活动的 Docker 容器 I/O。

我创建了一个带有 bash 会话的简单容器:

docker run -it -d --name my_container ubuntu bash

我给容器一个变量

docker exec my_container bash -c my_var=5

我要变量 back

docker exec my_container bash -c 'echo "$my_var"'

它什么也没打印。

如何在容器运行之间保留内存中的变量?我最终想要访问更大的对象,如数组,而不将它们保存到磁盘。

4

1 回答 1

0

每次调用docker exec都会创建一个新的 shell,并且环境变量不会跨 shell 持久化。

尝试创建一些持久的东西,例如一个文件:

docker exec my_container bash -c "echo Hello > /freddie.txt"

然后:

docker exec my_container bash -c "more /freddie.txt"
::::::::::::::
/freddie.txt
::::::::::::::
Hello
于 2021-04-07T21:17:41.433 回答