#bash #docker
Вопрос:
Я не понимаю, почему это работает:
admins3:~ admin$ docker exec -it xenodochial_aryabhata cat /opt/source-code/deleteme.txt
test
Но это не так:
admins3:~ admin$ docker exec -it xenodochial_aryabhata echo 'why' >> /opt/source-code/deleteme.txt
-bash: /opt/source-code/deleteme.txt: No such file or directory
В случае, если это поможет, вот как выглядят разрешения:
admins3:~ admin$ docker exec -it xenodochial_aryabhata ls -lah /opt/source-code
total 108K
drwxrwxrwx 1 root root 4.0K Jun 7 20:50 .
drwxr-xr-x 1 root root 4.0K Jun 7 20:13 ..
-rwxrwxrwx 1 root root 860 Jun 7 20:12 Dockerfile
-rwxrwxrwx 1 root root 677 Jun 3 19:44 README.md
-rwxrwxrwx 1 root root 6 Jun 7 20:09 deleteme.txt
-rwxr-xr-x 1 root root 419 Jun 7 20:36 ext.ps1
Комментарии:
1.
>>
В вашем втором примере интерпретируетсяbash
на вашем хосте. Не (как вы, вероятно, предполагали) оболочкой внутри контейнера docker. Вам нужно сделатьsh -c "echo 'why' >> /opt/source-code/deleteme.txt"
что-то вроде команды.