Как да вляза в обвивката на контейнер Docker'?
Започвам да работя с Docker. Използвам базовия образ на WordPress и docker-compose.
Опитвам се да вляза с ssh в един от контейнерите, за да проверя файловете/директориите, които са създадени по време на първоначалното изграждане. Опитах се да изпълня docker-compose run containername ls -la
, но това не доведе до нищо. Дори и да го направи, предпочитам да имам конзола, в която мога да преглеждам структурата на директориите, вместо да изпълнявам една команда. Какъв е правилният начин да направя това с Docker?
979
3
docker attach
ще ви позволи да се свържете с вашия контейнер Docker, но това всъщност не е същото катоssh
. Ако контейнерът ви работи с уеб сървър например,docker attach
вероятно ще ви свърже с stdout на процеса на уеб сървъра. Не е задължително да ви даде шел.Командата
docker exec
вероятно е това, което търсите; тя ще ви позволи да изпълнявате произволни команди в съществуващ контейнер. Например:Разбира се, всяка команда, която изпълнявате, трябва да съществува във файловата система на контейнера.
В горната команда `
е името или идентификаторът на целевия контейнер. Няма значение дали използвате или не
docker compose; просто стартирайте
docker ps` и използвайте или ID (шестнадесетичен низ, показан в първата колона), или името (показано в последната колона). Например, дадено:Мога да стартирам:
Мога да постигна същото нещо, като изпълня:
По същия начин мога да стартирам шел в контейнера;
docker exec
определено ще бъде решение. Лесен начин да се справим с въпроса, който сте задали, е като монтираме директорията в Docker към директорията на локалната система.Така ще можете да виждате промените в локалния път незабавно.
Друга възможност е да използвате nsenter.