将命令与docker exec混淆

时间:2018-07-02 02:08:11

标签: docker

当我将命令与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时,它不会影响容器中的文件。任何人,请帮助我!

1 个答案:

答案 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命令不在同一上下文您的容器。