Todo el mundo sabe que docker run puede especificar mapeos de puertos, pero una vez que se genera un contenedor, no hay ningún comando que pueda modificarse directamente. Normalmente, de forma indirecta, guarda la imagen y crea un nuevo contenedor, especificando el nuevo mapa de puerto en el momento de la creación.
¿Hay alguna forma de modificar el contenedor existente sin guardar la imagen? Sí. Encontré la respuesta en stackoverflow, la publicación original es la siguiente
https://stackoverflow.com/questi ... ng-docker-container
Estoy asignando el puerto 8080 del contenedor Rap2-delos al 80 de la máquina anfitrionaPuerto arriba, como se muestra a continuación:
Ahora mismoAhora quiero mapear el puerto 8080 del contenedor Rap2-delos al puerto 8080 de la máquina anfitrionaencima.
El tutorial es el siguiente
--Para contenedor
--Ejecutar docker inspect [ID CONTENEDOR] | Comando de identificación del grep
--Ejecuta el comando cd /var/lib/docker/containers para encontrar el directorio con el mismo ID, como se muestra en la figura de abajo
Stop docker engine service, systemctl stop docker
Modificar el archivo de configuración hostconfig.json
ejemplo
vi hostconfig.json Si antes no existía mapeo de puertos, debería haber un párrafo así: "PortBindings":{} Añade un mapeo que diga: "PortBindings":{"3306/tcp":[{{"HostIp":"","HostPort":"3307"}]} El primer número es el puerto contenedor, y el último es el puerto anfitrión.
Después de modificar y guardar la configuración, finalmente inicia el servicio docker
systemctl start docker
Hecho
|