Docker 在本地机器上运行,并且可以通过 docker-compose.yml 和 Dockerfile 访问,但在 VPS 服务器中却无法访问

Docker 在本地机器上运行,并且可以通过 docker-compose.yml 和 Dockerfile 访问,但在 VPS 服务器中却无法访问

我第一次在 VPS 服务器中为我的项目配置 docker。我成功地在本地机器上运行了它,但在服务器上,所有服务都在运行,但无法通过浏览器访问。我检查了所有端口映射、防火墙配置以及大量博客和教程,但都帮不上忙。

以下是我的项目的结构:

  • html/
    • Dockerfile
    • docker-compose.yml
    • 项目(即 oms)
      • 项目文件

这是我的配置文件, docker-compose.yml

version: '3'
services:
  oms:
    build:
      context: . # automatically finds Dockerfile
      dockerfile: Dockerfile
    container_name: oms
    ports:
      - 8080:80
    volumes:
      - "./oms:/var/www/html/oms"
    links:
     - db
  db:
    image: mariadb:10.6.13
    restart: always
    environment:
      - MARIADB_ROOT_PASSWORD=root #username = root
    volumes:
      - db:/var/lib/mysql
  phpmyadmin: 
    image: phpmyadmin/phpmyadmin
    ports:
      - 8001:80
    environment:
      - PMA_HOST:db
      - PMA_PORT:3306
volumes:
  db:    

这是我的Dockerfile

FROM php:8.1-apache

RUN apt-get update -y \
    && apt-get install -y \
        libpng-dev \
        libjpeg-dev \
    && docker-php-ext-configure gd --with-jpeg \
    && docker-php-ext-install -j$(nproc) gd \
    && apt-get install -y default-mysql-client \
    && docker-php-ext-install mysqli \
    && docker-php-ext-enable mysqli \
    && apt-get install -y git \
    && apt-get install -y nano \
    && apt-get install -y iputils-ping


# Give permissions to www-data user
RUN chown -R www-data:www-data /var/www/html

# Enable rewrite module
RUN a2enmod rewrite

# Copy the project files for projects(ie office1, office2..)
COPY ./ /var/www/html/

# Set the working directory
WORKDIR /var/www/html

# Restart Apache service
CMD ["apache2-foreground"]

当我尝试使用 URL http://ip:8001 或 http://ip:8080 通过浏览器访问时,它会抛出此错误

错误

我使用以下命令检查了防火墙是否阻止了该端口:

  • telnet vps_ip 8080
  • telnet vps_ip 8001

两个端口均已连接

另外,当我登录 VPS 服务器并在终端中 curl -i localhost:8001 时,它会显示内容,但不在浏览器中显示。我不知道我错过了什么。有人能帮帮我吗?

相关内容