Saya membuat gambar docker menggunakan Dockerfile yang cukup sederhana. Di dalam Dockerfile saya memiliki perintah ini:
RUN printf "192.92.13.243 www.hahaha.com \n" >> /etc/hosts
Perintah itu sendiri tampaknya baik-baik saja, karena pembuatan gambar tidak berhenti pada saat ini.
Masalahnya adalah ini: saat menjalankan gambar, baris yang seharusnya dimasukkan ke dalam "/etc/hosts" tidak ada.
Sekarang, saya mencari-cari dan menemukan bahwa sebelum docker versi 1.2, ada masalah dengan file host di dalam wadah. Dalam kasus saya, saya menggunakan versi 1.5, yang terbaru pada saat ini.
Apakah saya kehilangan sesuatu?
Pembaruan 1:
Tampaknya ada banyak masalah untuk ini, baik terbuka maupun tertutup, di halaman github docker.
RUN echo "192.168.11.112 myhost" >> /etc/hosts && wget http://myhost
Caranya adalah dengan menambahkan nama host pada baris yang sama saat Anda menggunakannya, jika tidak, file host akan diatur ulang, karena setiap perintah RUN memulai wadah perantara baru. Misalnya, ini tidak akan berhasil:
RUN echo "192.168.11.112 myhost" >> /etc/hostsRUN wget http://myhost
Setelah menulis pembaruan untuk pertanyaan saya, saya memutuskan untuk melihat sekali lagi "masalah" yang dibuka di github. Ternyata, solusi telah diterapkan:
docker run ... --add-host='server:0.0.0.0' ...
Menggunakan " -- add-host..."argumen ketika memulai sebuah wadah adalah mungkin untuk memodifikasi file host.