GÜNCELLEME
En kolay yöntem: Docker exec'i kullanma
Docker sürüm 1.3 veya daha yeni bir sürümü exec
benzer davranışı destekler nsenter
. Bu komut, zaten çalışmakta olan kapsayıcıda yeni işlem çalıştırabilir (kapsayıcıda PID 1 işlemi zaten çalışıyor olmalıdır). /bin/bash
Kapsayıcı durumunu keşfetmek için çalışabilirsiniz :
docker exec -t -i mycontainer /bin/bash
bkz Docker komut satırı belgelere
Alternatif yöntem 1
Fotoğraf çekme
Kapsayıcı dosya sistemini şu şekilde değerlendirebilirsiniz:
# find ID of your running container:
docker ps
# create image (snapshot) from container filesystem
docker commit 12345678904b5 mysnapshot
# explore this filesystem using bash (for example)
docker run -t -i mysnapshot /bin/bash
Bu şekilde, çalışan konteynerin dosya sistemini tam zamanında değerlendirebilirsiniz. Kapsayıcı hala çalışıyor, gelecekteki değişiklikler dahil edilmedi.
Daha sonra kullanarak anlık görüntüyü silebilirsiniz (çalışan kabın dosya sistemi etkilenmez!):
docker rmi mysnapshot
Alternatif yöntem 2
ssh
Sürekli erişime ihtiyacınız varsa, sshd'yi kapınıza yükleyebilir ve sshd arka plan programını çalıştırabilirsiniz:
docker run -d -p 22 mysnapshot /usr/sbin/sshd -D
# you need to find out which port to connect:
docker ps
Bu şekilde, uygulamanızı ssh kullanarak çalıştırabilirsiniz (istediğinizi bağlayın ve yürütün).
GÜNCELLEME: Alternatif yöntem 3
merkez
Kullanın nsenter
, bkz. Https://web.archive.org/web/20160305150559/http://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/
Kısa sürüm: nsenter ile, bu kapsayıcı SSH veya herhangi bir özel amaçlı arka plan programı çalıştırmasa bile mevcut bir kapsayıcıya bir kabuk alabilirsiniz
docker exec <container> bash
. Yani, kabın içinde bir kabuk açıyorsun.