tag run remove name hub example docker

run - ¿Cómo puedo hacer que/etc/hosts pueda escribirse por root en un Docker Container?



download docker image (4)

Soy nuevo en el uso de la ventana acoplable y estoy configurando un contenedor.
No puedo editar / etc / hosts (pero necesito para algún software que estoy desarrollando). La edición automática (a través de sudo o raíz) del archivo dice que está en un sistema de archivos de solo lectura. La edición manual (vim) del archivo dice que es de solo lectura y no puedo guardar los cambios como root (los permisos de archivo son rw para el propietario (root)).

Sin embargo, puedo modificar otros archivos y agregar archivos en / etc.

¿Hay alguna razón para esto?

¿Puedo cambiar la configuración de Docker para permitir la edición de / etc / hosts?

Gracias


ACTUALIZACIÓN 2014-09

Ver respuesta @Thomas:

/ etc / hosts ahora se puede escribir desde Docker 1.2.

Respuesta original

Puedes usar este truco mientras tanto

https://unix.stackexchange.com/questions/57459/how-can-i-override-the-etc-hosts-file-at-user-level

En tu Dockerfile:

ADD your_hosts_file /tmp/hosts RUN mkdir -p -- /lib-override && cp /lib/x86_64-linux-gnu/libnss_files.so.2 /lib-override RUN perl -pi -e ''s:/etc/hosts:/tmp/hosts:g'' /lib-override/libnss_files.so.2 ENV LD_LIBRARY_PATH /lib-override


Esta es actualmente una limitación técnica de Docker y se analiza más detalladamente en https://github.com/dotcloud/docker/issues/2267 .

Eventualmente será levantado.

Por ahora, necesita solucionarlo, por ejemplo, mediante el uso de un servidor dnsmasq personalizado.


Recientemente he encontrado la necesidad de agregar una entrada en el /etc/hosts también (para que funcione sendmail ).

Terminé haciéndolo parte de la declaración CMD del Dockerfile esta manera:

CMD echo "127.0.0.1 noreply.example.com $(hostname)" >> /etc/hosts / && sendmailconfig / && cron -f

Por lo tanto, efectivamente no forma parte de la imagen, pero siempre está disponible después de crear un contenedor a partir de la imagen.


/etc/hosts ahora se puede escribir desde Docker 1.2.

Del blog de Docker:

Sin embargo, tenga en cuenta que los cambios en estos archivos no se guardan durante una compilación de la ventana acoplable y, por lo tanto, no se conservarán en la imagen resultante. Los cambios solo se "pegarán" en un contenedor en ejecución.