docker 中使用 IPv6 的 Apache2

docker 中使用 IPv6 的 Apache2

我正在尝试在我的 docker 容器上配置 IPv6。我想在我的 IPv6 上公开端口 80。但我的网站仍然无法在 IPv6 上运行。如何检查问题出在哪里?也许有人可以在我的配置文件中找到它:

docker-compose.yml:

version: '3'
services:
    web:
        container_name: ci4
        build:
            context: ./docker
        ports:
            - 80:80
        volumes:
            - ./:/var/www/html

Dockerfile

FROM php:7.4-apache
RUN apt-get update && apt-get install -y

COPY 000-default.conf /etc/apache2/sites-available/
COPY ports.conf /etc/apache2/

RUN a2enmod rewrite
RUN service apache2 restart

端口.conf:

Listen [::]:80

000-默认.conf

<VirtualHost [::]:80>
    DocumentRoot "/var/www/html/public/"
    ServerName localhost
    <Directory "/var/www/html/public/">
        AllowOverride all
    </Directory>
</VirtualHost>

谢谢你的帮助。

答案1

启用 IPv6 支持

在 Docker 容器或 Swarm 服务中使用 IPv6 之前,您需要在 Docker 守护进程中启用 IPv6 支持。之后,您可以选择在任何容器、服务或网络中使用 IPv4 或 IPv6(或两者)。

编辑 /etc/docker/daemon.json,将 ipv6 键设置为 true,将 fixed-cidr-v6 键设置为您的 IPv6 子网。在此示例中,我们将其设置为 2001:db8:1::/64。

{
  "ipv6": true,
  "fixed-cidr-v6": "2001:db8:1::/64"
}

保存并重启docker

systemctl reload docker

您现在可以使用 --ipv6 标志创建网络,并使用 --ip6 标志为容器分配 IPv6 地址。

https://docs.docker.com/config/daemon/ipv6/

相关内容