一个关于 ipv6 和 ipv4 的问题
我在 WSL2-debian11 环境内,使用 docker20.10.17 和 MySQL8.0 ,并使用 dockerfile 以 MySQL 为基础构建并运行新镜像。
mysql 的 my.cnf 文件配置如下
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
# By default we only accept connections from localhost
bind-address = 0.0.0.0
# Disabling symbolic-links is recommended to prevent assorted security risks
default-time_zone = '+8:00'
symbolic-links=0
character-set-server=utf8mb4
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
dockerfile 如下
FROM mysql:latest
MAINTAINER cf
EXPOSE 3306
LABEL version="0.1" description="MySQL 服务器" by="cf"
ENV MYSQL_ROOT_PASSWORD cf1111
ENV MYSQL_USER="cf"
ENV MYSQL_PASSWORD="cfcfcf"
RUN mkdir -p /var/log/mysql
RUN mkdir -p /etc/mysql
RUN mkdir -p /var/lib/mysql
COPY log /var/log/mysql
COPY conf/my.cnf /etc/mysql/my.cnf
COPY data /var/lib/mysql
COPY data-files /var/lib/mysql-files
使用如下命令构建、运行镜像
docker build -t gettorrentmysql:0.1 mysql80
docker run gettorrentmysql:0.1
运行后通过 netstat -tunl 命令发现,容器监听了ipv6下的:::3306 端口,而非ipv4。
而使用 windows 端的 MySQL workbench 新建连接,发现 hostname 填写::和 0:0:0:0:0:0:0:0 都不能连接 反而是 127.0.0.1 才能连接。
问题: workbench 使用的 ip 地址和 wsl 内容器暴露的 ip 地址为什么不一致?哪个才是真的?或者 workbench 有一些优化? 百思不得其解,希望各位能帮忙解惑,感谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.