从docker主机在docker容器中创建一个符号链接

时间:2018-05-23 04:14:31

标签: bash shell docker

我在docker主机上有一个脚本,我想运行它并在其容器内创建符号链接。但是,当我在下面运行我的脚本时,我似乎无法获得创建的符号链接:

#!/bin/bash

declare -A containers

while IFS== read -r key value; do
    containers[$key]=${value}
S=$(sudo docker exec -t $key ln -s /srv/my.cnf /etc/mysql/my.cnf);
done < "/opt/containers.txt"

奇怪的是,当我直接在终端中运行脚本之外的命令时,它确实有效。如,

sudo docker exec -t db-test-1 ln -s /srv/my.cnf /etc/mysql/my.cnf

所以不确定为什么它不会在脚本中运行。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

对于测试,你可以看到在它自己的shel中隔离命令(这里是ln)是否有帮助:

 S=$(sudo docker exec -t $key /bin/sh -c "ln -s /srv/my.cnf /etc/mysql/my.cnf");