Berikut adalah solusi ketika container buruh pelabuhan keluar secara normal dan Anda dapat mengedit Dockerfile.
Umumnya, ketika kontainer buruh pelabuhan dijalankan, aplikasi dilayani dengan menjalankan perintah. Dari referensi Dockerfile ,
Baik instruksi CMD dan ENTRYPOINT menentukan perintah apa yang akan dijalankan saat menjalankan container. ... Dockerfile harus menentukan setidaknya satu dari perintah CMD atau ENTRYPOINT.
Saat Anda membuat gambar dan tidak menentukan perintah apa pun dengan CMD atau ENTRYPOINT, perintah CMD atau ENTRYPOINT gambar dasar akan dijalankan.
Misalnya, Dockerfile Resmi Ubuntu memiliki CMD ["/bin/bash"]
( https://hub.docker.com/_/ubuntu ). Sekarang, bin/bash/
perintah dapat menerima masukan dan docker run -it IMAGE_ID
perintah melampirkan STDIN ke penampung. Hasilnya adalah Anda mendapatkan terminal interaktif dan penampung terus berjalan.
Ketika perintah dengan CMD atau ENTRYPOINT ditentukan di Dockerfile, perintah ini akan dijalankan saat menjalankan container. Sekarang, jika perintah ini dapat selesai tanpa memerlukan input apa pun, perintah akan selesai dan container akan keluar. TIDAKdocker run -it IMAGE_ID
akan menyediakan terminal interaktif dalam kasus ini. Contohnya adalah image buruh pelabuhan yang dibangun dari Dockerfile di bawah ini-
FROM ubuntu
ENTRYPOINT echo hello
Jika Anda perlu pergi ke terminal gambar ini, Anda harus menjaga kontainer tetap berjalan dengan memodifikasi perintah entrypoint.
FROM ubuntu
ENTRYPOINT echo hello && sleep infinity
Setelah menjalankan penampung secara normal docker run IMAGE_ID
, Anda bisa pergi ke terminal lain dan menggunakan docker exec -it CONTAINER_ID bash
untuk mendapatkan terminal penampung.