当我将命令与docker exec一起使用时,我感到困惑。
# docker exec -it testing cat /tmp/1.txt
1
...
# docker exec -it testing echo 2 >> /tmp/1.txt
# docker exec -it testing cat /tmp/1.txt
1
...
# docker exec -it testing /bin/sh -c "echo 2 >> /tmp/1.txt"
# docker exec -it testing cat /tmp/1.txt
1
2
当我在不附加/ bin / sh的情况下使用命令echo时,它不会影响容器中的文件。任何人,请帮助我!
答案 0 :(得分:1)
创建容器时,文件系统并不相同。
docker中的/ tmp / 与系统上的 / tmp / 不同。
运行时
docker exec -it testing /bin/sh -c "echo 2 >> /tmp/1.txt"
使用一个2参数 -c 和“ echo 2 >> /tmp/1.txt” 运行 sh ,则sh是在容器内运行
运行时
docker exec -it testing echo 2 >> /tmp/1.txt
使用一个参数 2 和**'>> /tmp/1.txt'**运行 echo ,与docker命令不在同一上下文您的容器。