我想在使用docker-machine创建的vm中创建文件/etc/docker/daemon.json,通过SSH连接到它,如下所示
docker-machine ssh manager1 "sudo echo \"{ \"insecure-registries\":[\"192.168.100.99:5000\"] }\" >| /etc/docker/daemon.json"
上述内容因消息
而失败 sh: can't create /etc/docker/daemon.json: Permission denied
如何实现上述功能与我尝试过的方式类似,因为我需要将其置于非交互式bash脚本中。
答案 0 :(得分:0)
您的命令以root身份运行echo,但输出由作为用户运行的shell重定向处理。尝试使用管道来运行tee的sudo:
docker-machine ssh manager1 "echo \"{ \\\"insecure-registries\\\":[\\\"192.168.100.99:5000\\\"] }\" \
| sudo tee /etc/docker/daemon.json"
注意我还多次将echo中的引号转义,否则引号会被shell / echo命令吃掉。
对于这个特定用例,我建议您创建机器:
docker machine create --engine-insecure-registry 192.168.100.99:5000 ...
将来。