Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO] Problema de puertos con Docker

  • 3 Respuestas
  • 2491 Vistas

0 Usuarios y 5 Visitantes están viendo este tema.

Desconectado phr4ckl0t

  • *
  • Underc0der
  • Mensajes: 23
  • Actividad:
    0%
  • Reputación 1
    • Ver Perfil
    • Email
« en: Octubre 15, 2017, 04:34:00 pm »
Hey h4x0rs como la llevan? espero que bien. Me paso por acá con un pequeño problema que me tiene pensando, sucede que queria armar un pequeño entorno de desarrollo web para php+html5, pero no queria utilizar xampp ni mucho menos vagrant, etc. Así que le di la oportunidad a Docker ya que las imagenes pesan realmente poco y es bastante simple(curioso decirlo cuando tengo un problema jeje) y los contenedores son muy rapidos. El problema viene a la hora visualizar el contenido de index.php que esta en el contenedor en el directorio /app desde mi equipo host. Para configurarlo hice lo siguiente:

1. Descargué una imagen de alpine linux con php 7
    docker image pull jorge07/alpine-php

2.Creé el contenedor bindeando la carpeta donde tengo el index.php en mi host en modo lectura para el contenedor y manteniendolo corriendo en background
    docker container run -d --name miwebapp -P --mount type=bind,source=/home/phr4ckl0t/Documents/Codigo,target=/app jorge07/alpine-php

3. Para verificar el puerto random al que bindea el contenedor con mi host y mirar la IP del contenedor hice lo siguiente:
    docker container inspect miwebapp

4. Del paso 3 obtuve que la IP que era 172.17.0.2 y el puerto expuesto que era el 32774

5. En el web browser  de mi host pongo en la barra de direcciones:
    http://172.17.0.2:32774

El problema es que no logra conectar por lo que el navegador me tira un unable to connect al momento de visualizar el contenido de mi archivo index.php, según el tutorial en http://training.play-with-docker.com/alacart/ en el terce enlace (simple web app) deberia bastar, e intentado otras cosas que he encontrado en la red como añadir el contenedor a la misma red del host con --network, he seteado los puertos manualmente con -p <host>:<container> etc..., probé con otra imagen que tuviera un apache dentro pensando que quizá era por que la que uso no tiene un web server escuchando en x puerto y el resultado es el mismo. Para asegurarme de que en realidad el archivo esta en el contenedor abro una consola con docker exec -it miwebapp /bin/sh y me desplazo hacia el directorio /app y efectivamente si está montado el contenido que comparto desde mi host.

Esta es mi docker info:

Containers: 1
 Running: 1
 Paused: 0
 Stopped: 0
Images: 3
Server Version: 17.09.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 06b9cb35161009dcb7123345749fef02f7cea8e0
runc version: 3f2f8b84a77f73d38244dd690525642a72156c64
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.13.5-1-ARCH
Operating System: Arch Linux
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 15.61GiB
Name: robbie
ID: LOQC:2333:5VCJ:Z5EU:5NVM:VXRQ:3JII:XOWU:SWSO:2FR5:MCDJ:MOG5
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: phr4ckl0t
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

y esta es la del container:

CONTAINER ID      IMAGE                     COMMAND             CREATED                  STATUS                   PORTS                              NAMES
bea5cc95f427        jorge07/alpine-php   "/sbin/tini -- /us..."   About a minute ago   Up About a minute   0.0.0.0:32774->9000/tcp   webapp


Cualquier ayuda es bien recibida, la agradezco demasiado. Seguiré investigando a ver si encuentro algo.
« Última modificación: Octubre 17, 2017, 09:05:37 am por Gabriela »

Conectado blackdrake

  • *
  • Co Admin
  • Mensajes: 1923
  • Actividad:
    0%
  • Reputación 15
    • Ver Perfil
« Respuesta #1 en: Octubre 15, 2017, 05:00:52 pm »
Puedes probar con una de las dos opciones:


1.- Levantando el docker con el puerto redirigido

Código: Bash
  1. docker run -d -p 32774:32774 --name webapp webapp

2.- IPTABLES


Código: Bash
  1.  iptables -t nat -A  DOCKER -p tcp --dport 32774 -j DNAT --to-destination 172.17.0.19:32774


Desconectado phr4ckl0t

  • *
  • Underc0der
  • Mensajes: 23
  • Actividad:
    0%
  • Reputación 1
    • Ver Perfil
    • Email
« Respuesta #2 en: Octubre 15, 2017, 06:33:07 pm »
La primera opción la había probado antes pero no dió resultado, y la segunda supuse que quizá era problema de reglas con el firewall pero no probé nada hasta ahora que lo mencionas, primero listé las cadenas y las reglas que tenia y me di cuenta que ya hay unas agregadas, aún así probe como me lo planteas pero sigo sin poder tener acceso. Es desesperante jaja.

Desconectado phr4ckl0t

  • *
  • Underc0der
  • Mensajes: 23
  • Actividad:
    0%
  • Reputación 1
    • Ver Perfil
    • Email
« Respuesta #3 en: Octubre 16, 2017, 03:09:44 am »
Ya solucioné el inconveniente, no se por qué como lo planeaba blackdrake no resultaba, lo que hize fue bajar un momento el servicio de iptables para comprobar que fuera él quien generaba el problema. Y efectivamente era él, así que como tenía el iptables por defecto solo habían unas cuantas reglas de docker, luego al intentar iniciar el servicio de nuevo me encuentro que no es capaz de iniciar, buscando y bucando me encuentro con la sorpresa de que ya no esta el archivo /etc/iptables/iptables.rules vaya yo a saber por qué se eliminó, luego lo que hize fue crear un archivo con el mismo nombre pero con el contenido del archivo /etc/iptables/empty.rules y tras reiniciar el servicio de docker se añadieron nuevas cadenas al iptables, pero despues de eso pude por fin navegar en el sitio web alojado en el contenedor desde el equipo host. No tengo 100% claro que fue lo que sucedió pero me funcionó.

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 22512
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 9661
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 8266
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 12829
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 10848
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon