【发布时间】:2016-06-12 17:08:45
【问题描述】:
我想将一行文本写入一个正在运行的 docker 容器内的文本文件。到目前为止,这是我尝试过的:
docker exec -d app_$i eval echo "server.url=$server_url" >> /home/app/.app/app.config
回复:
/home/user/.app/app.config: No such file or directory
第二次尝试:
cfg_add="echo 'server.url=$server_url' >> /home/user/.app/app.config"
docker exec -i app_$i eval $cfg_add
回复:
exec: "eval": executable file not found in $PATH
有什么想法吗?
【问题讨论】:
-
为什么
-d用于 docker exec? -
eval不在容器中。内核在主机和容器之间共享。程序不是。如果你在你的主机上安装了nc,容器将无法执行它,只要它没有安装它。 -
@Auzias:问题不在于
eval不在容器中存在(它可能是,作为shell builtin容器的外壳),但它不是外部实用程序,因此docker exec无法调用它。