Я новичок в Docker Concept, я только сегодня начал с ним играть. И я обнаружил команду exec, задача которой - запустить новую команду в работающем контейнере.
Я нахожусь в каталоге ~/linux-tweet-app, который содержит файлы index-original.html и index.html.
Мой контейнер запущен:
docker container run \
--detach \
--publish 80:80 \
--name linux_tweet_app \
--mount type=bind,source = "$(pwd)",target=/usr/share/nginx/html \
$DOCKERID/linux_tweet_app:1.0
Моя задача - скопировать содержимое index-original.html в index.html. Поскольку я использую привязку на хосте докеров, это работает:
cp index-new.html index.html
и изменения отразились,
Но при этом с exec:
docker exec -it linux_tweet_app cp index-original.html index.html
Я не могу понять, что происходит? Любая помощь будет признательна этому новичку
Спасибо.


Это потому, что вам нужно использовать полный путь внутри контейнера, поэтому это должно сработать:
docker exec -it linux_tweet_app cp /usr/share/nginx/html/index-original.html /usr/share/nginx/html/index.html
Вы также можете указать WORKDIR в Dockerfile и установить для него / usr / share / nginx / html