PEMBARUAN
Metode termudah: Menggunakan docker exec
Docker versi 1.3 atau yang lebih baru mendukung perintah exec
yang berperilaku mirip dengan nsenter
. Perintah ini dapat menjalankan proses baru dalam wadah yang sudah berjalan (wadah harus sudah menjalankan proses PID 1). Anda dapat berlari /bin/bash
untuk menjelajahi keadaan wadah:
docker exec -t -i mycontainer /bin/bash
lihat dokumentasi baris perintah Docker
Metode alternatif 1
Snapshotting
Anda dapat mengevaluasi sistem file kontainer dengan cara ini:
# 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
Dengan cara ini, Anda dapat mengevaluasi sistem file wadah yang sedang berjalan pada saat yang tepat. Kontainer masih berjalan, tidak ada perubahan di masa depan yang disertakan.
Anda nanti dapat menghapus snapshot menggunakan (filesystem wadah yang sedang berjalan tidak terpengaruh!):
docker rmi mysnapshot
Metode alternatif 2
ssh
Jika Anda memerlukan akses terus menerus, Anda dapat menginstal sshd ke wadah Anda dan menjalankan daemon sshd:
docker run -d -p 22 mysnapshot /usr/sbin/sshd -D
# you need to find out which port to connect:
docker ps
Dengan cara ini, Anda dapat menjalankan aplikasi menggunakan ssh (hubungkan dan jalankan apa yang Anda inginkan).
UPDATE: Alternatif metode 3
nsenter
Gunakan nsenter
, lihat https://web.archive.org/web/20160305150559/http://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/
Versi singkatnya adalah: dengan nsenter, Anda bisa mendapatkan shell ke wadah yang sudah ada, bahkan jika wadah itu tidak menjalankan SSH atau jenis daemon tujuan khusus apa pun
docker exec <container> bash
. Jadi, Anda hanya membuka cangkang di dalam wadah.