Soy un principiante en el mundo de Docker. Creé una API web central de ASP.net y la ejecuté con éxito en localhost con PostgreSQL . Ahora, agregué WebAPI en un contenedor Docker. Estoy usando Windows 10, Visual Studio 2015, Docker para Windows 10 y Powershell. Ahora el problema es que no puedo resolver lo siguiente.
Está dando un error de "Conexión rechazada" cuando intento llamar a la API. La conexión a la base de datos falla. Creo que es porque no hay DB dentro del contenedor. No pude encontrar una forma adecuada para que un principiante entienda este procedimiento. Cualquier ayuda con los pasos sería realmente útil.
Desea ejecutar cada aplicación en un contenedor separado; de lo contrario, terminará con el mismo infierno de aplicaciones que antes.
Pero debe conectar los contenedores entre sí mediante una red.
pasos para hacerlo:
docker network create bride-network
postgres
con la base de datos de postgres dentro. asegúrese de agregarlo a la red: --network bridge-network
--network bridge-network
Ahora su aplicación puede llegar a la base de datos de postgres con el nombre de host http://postgres
(básicamente http://[container-name] ).
Para hacer esto de una vez, puede crear un archivo docker-compose.yml y ejecutar docker-compose -f yourfile.yml up
para crear todo a la vez.
La idea de docker es que 1 contenedor ejecute 1 aplicación. Cuando este proceso se detiene, Docker sabe que el contenedor se ha detenido/muerto. Si agrega varias aplicaciones en 1 contenedor, la ventana acoplable no lo sabrá. También podría ser que las aplicaciones creen problemas, por ejemplo: ¿qué pasa si ambas aplicaciones se registran para escuchar los mismos puertos?
Otro caso problemático es cuando desea escalar: cree contenedores duplicados. ¿Entonces también desea escalar la base de datos 1 = 1 con su aplicación? ¿Dónde está entonces tu única fuente de verdad?
Entonces divides 1 aplicación por contenedor: