Quiero actualizar mi /etc/hostsarchivo durante la "compilación de Docker".
Agregué la siguiente línea en Dockerfile pero no actualiza el /etc/hostsarchivo ni da ningún error.
RUN echo "192.168.33.11    mynginx" >> /etc/hosts
Necesito actualizar /etc/hosts. ¿Alguien puede sugerir sobre esto?
                    
                        docker
                                dockerfile
                                hosts
                                
                    
                    
                        Prakash
fuente
                
                fuente

Respuestas:
Con una versión más reciente de docker, esto podría hacerse con docker-compose y su
extra_hostsdirectivaEn resumen: modifica
/etc/hoststu contenedor al ejecutarlo, no al construirlo.Con Docker 17.x +, se
docker build --add-hostmenciona a continuación , pero, como se comentó en el número 34078 y en esta respuesta :Las soluciones mencionadas se refieren al docker-compose que sugería anteriormente:
fuente
docket exec -it <container name> /bin/bash, luego actualizar el host contenedor de la ventana acoplable en / ect / host con su editor de línea de comando preferido (vim, emacs, nano, echo ''. >> />).No se puede modificar el archivo host de la imagen utilizando
echoen elRUNpaso porque el demonio ventana acoplable mantendrá el archivo (/ etc / hosts) y su contenido (entrada hosts) cuando se inicia un contenedor de la imagen.Sin embargo, se puede utilizar lo siguiente para lograr lo mismo:
La clave a tener en cuenta aquí es el uso del
execcomando como sugiere la documentación de la ventana acoplable. El uso de exec hará que el comando java sea PID 1 para el contenedor. Las interrupciones de Docker solo responderán a eso.Ver https://docs.docker.com/engine/reference/builder/#entrypoint
fuente
ENTRYPOINTno es una instrucción para la imagen. Solo marca un punto de entrada cuando ejecutamos un contenedor desde esta imagen, lo que significa que la entrada de hosts existe solo después de que se ejecuta el contenedor. No creo que el requisito sea imprescindible. Debe haber algún malentendido.Creo que Docker agregó recientemente la
--add-hostbandera a la compilación de Docker, lo cual es realmente genial.[Editar] Así que esta función se actualizó el 17.04.0-ce
Para obtener más detalles sobre cómo utilizar
docker buildla--add-hostbandera, visite: https://docs.docker.com/edge/engine/reference/commandline/build/fuente
--add-hostfunción está disponible en Docker 12 en CentOS.Dado que esto todavía aparece como una primera respuesta en Google, contribuiré con una posible solución.
El comando tomado de aquí funcionó sorprendentemente para mí (Docker 1.13.1, Ubuntu 16.04):
fuente
Si esto es útil para alguien, la
HOSTALIASESvariable env funcionó para mí:fuente
Puedes hacerlo con el siguiente comando a la hora de ejecutar docker
docker run [OPTIONS] --add-host example.com:127.0.0.1 <your-image-name>:<your tag>Aquí estoy mapeando
example.coma localhost127.0.0.1y su funcionamiento.fuente
Estoy usando AWS Elasticbeanstalk + Docker + Supervisord.
Respuesta rápida
Solo agregue un poco de código
Dockerfile.fuente
Respuesta completa
hostsarchivo que desea agregar al contenedor de la ventana acoplable;hostsarchivo en el contenedor agregando la siguiente línea en elDockerfileENTRYPOINToCMDoCRONjob, incorpore la siguiente línea de comando o al menos ejecútelo dentro del contenedor en ejecución:Dockerfileporque la modificación se perderá:fuente
Puede usar la opción --add-host durante la ejecución de la ventana acoplable.
Para su caso, use: docker run --add-host mynginx: 192.168.33.11 [image_name]: [tag]
Esto actualizará su / etc / hosts
puede verificarlo usando los siguientes comandos:
si sh no funciona para usted, puede probar bash o / bin / sh o / bin / bash
fuente
fuente
Lo siguiente funcionó para mí al montar el archivo durante la ejecución de la ventana acoplable en lugar de la compilación de la ventana acoplable
fuente
Solo una respuesta rápida para ejecutar su contenedor usando:
una vez que el contenedor está abierto:
luego
y luego puedes
o:
o cualquier editor que te guste y ábrelo en vim, aquí puedes modificar, digamos, tu ip de inicio a 0.0.0.0
fuente