docker 端口Map-p 8080:8080与--net=主机

nlejzf6q  于 2023-02-18  发布在  Docker
关注(0)|答案(1)|浏览(180)
    • 停靠文件**
FROM ubuntu:20.04

# Setup
RUN apt-get update && apt-get install -y unzip xz-utils git openssh-client curl python3 && apt-get upgrade -y && rm -rf /var/cache/apt

# Install Flutter
RUN git clone https://github.com/flutter/flutter.git /usr/local/flutter
ENV PATH="/usr/local/flutter/bin:/usr/local/flutter/bin/cache/dart-sdk/bin:${PATH}"
RUN flutter channel master
RUN flutter upgrade
RUN flutter config --enable-web
RUN flutter doctor -v

# Copy files to container and get dependencies
COPY . /usr/local/bin/app
WORKDIR /usr/local/bin/app
RUN flutter pub get
RUN flutter build web

# Document the exposed port and start server
EXPOSE 8080
RUN chmod +x /usr/local/bin/app/server/server.sh
ENTRYPOINT [ "/usr/local/bin/app/server/server.sh" ]
    • 入口点server.sh文件**
#!/bin/bash
cd build/web/
python3 -m http.server 8080
  • 我构建了一个映像-docker build --network=host --tag image1 .
  • 然后我试着运行它:
  • docker run -d -p 8080:8080 image1--不起作用。没有错误,只是不加载
  • docker run -d image1--不起作用。没有错误,只是不加载
  • docker run -d --net=host image1--工作!!

为什么-p 8080:8080不工作而--net=host工作?

col17t5w

col17t5w1#

您尝试如何访问您的应用程序?在端口8000还是8080?您的标题和您发布的命令似乎不匹配。您是否尝试将您计算机上的8080Map到应用程序中的8080?如果是,您的命令中有拼写错误。您的命令将8000Map到8080,我猜您随后尝试在localhost:8080访问它,但没有遇到任何问题。
我认为它应该是docker run -d -p 8080:8080 image,然后您应该能够在localhost:8080访问它。

相关问题