我正在尝试在我的 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 地址。