Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

198
Visualizações
El contenedor Docker no se iniciará

Creé una aplicación simple que se conecta a PostgreSQL, pero cuando la contuve usando Docker, parece que no puedo iniciarla y no se mostró ningún puerto cuando ejecuté el contenedor. ¿Cuál parece ser el problema?

La aplicación funciona sin Docker, pero cuando la contenedorizo, ahí es donde surge el problema.

docker build es exitosa y cuando uso la docker run

me da un contenedor pero cuando lo verifico usando docker ps -a no se muestran puertos

Esto es lo que hice en la terminal docker

y este es mi código cuando me conecto a PostgreSQL db

 class Program { static void Main(string[] args) { using (var connection = new NpgsqlConnection("Host=localhost;Username=postgres;Password=password;Database=user")) { connection.Open(); connection.Execute("Insert into customer (name) values ('Mikolasola');"); var value = connection.Query<string>("Select name from customer;"); Console.WriteLine(value.First()); } Console.Read(); } }

aquí está mi archivo docker

 FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env WORKDIR /app COPY *.csproj ./ RUN dotnet restore COPY . ./ RUN dotnet publish -c Release -o out FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 WORKDIR /app COPY --from=build-env /app/out . ENTRYPOINT ["dotnet", "webapplication1.dll"]

Editar: cambié mi archivo Docker a esto y de alguna manera puedo obtener el puerto ahora

 FROM microsoft/dotnet:2-sdk AS build-env WORKDIR /app COPY *.csproj ./ RUN dotnet restore COPY . ./ RUN dotnet publish -c Release -r linux-x64 -o out FROM microsoft/dotnet:2-runtime-deps WORKDIR /app COPY --from=build-env /app/out ./ ENTRYPOINT ["./webapplication1"]

Pero no puedo ejecutarlo. Aquí está la captura de pantalla

ingrese la descripción de la imagen aquí

Cualquier ayuda sería muy apreciada. ¡Gracias! PD: soy novato

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

  1. Si usa Docker para Mac (o Docker para Windows), para acceder a cualquier cosa en el host, debe usar host.docker.internal . Más sobre eso aquí .
  2. Lea la cadena de conexión de las variables de configuración y entorno. Eso le permitirá anularlo cuando ejecute el contenedor.

PD: soy novato

Consejo profesional para ti :p

Es posible que no desee usar -d en el contenedor en el que está trabajando, por lo que verá sus registros allí mismo. Si no lo hubiera usado, habría visto la salida del proceso y no se habría preguntado por qué no se muestra ningún puerto allí :)


ACTUALIZAR:

  1. Use el Dockerfile de la pregunta original (antes de la edición).
  2. Le sugerí que lo ejecutara sin -d :
     docker run -p 8080:80 --name test webapp1
    Esto le mostrará el bloqueo de la aplicación aspnet. Verás lo que está pasando. En este caso, como sé lo que está pasando, puedo ayudar, pero en general quieres saber qué está pasando. Lo hace al no ejecutarlo en un estado separado para cosas pequeñas como esta, y al usar los docker logs cuando hay mucho que analizar. De todas formas...
  3. ... desea que el contenedor acceda a la base de datos en el host, no en su host local. Lo hace utilizando host.docker.internal como host. P.ej:
     Host=host.docker.internal;Username=postgres;Password=password;Database=user
    Esto solo funciona si usa Docker para Windows o Docker para Mac. No funciona en Docker Toolbox o en Linux AFAIK.
  4. Ahora necesita encontrar una forma en que su aplicación use host.docker.internal cuando se ejecuta dentro de docker y localhost de lo contrario. Mi sugerencia fue leerlo desde config.
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda