运行 docker 网络模式主机上的 Redis

Run Redis on docker network mode host

我想 运行 网络模式作为 docker 中 Redis 集群的主机。

redis image of docker hub中执行的命令,写法如下

docker run --name some-redis -d redis

通过给出 -p 选项执行端口映射后,如下所示:

docker run -p 6379:6379 --name some-redis redis

如果你连接到redis-cli,连接是好的。

> redis-cli -p 6379

127.0.0.1:6379>

如果用docker容器查看网络,检查some-redis,默认网络模式是bridge。

"Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,

我试着继续主机。

docker run --net=host -p 6379:6379 --name some-redis redis
WARNING: Published ports are discarded when using host network mode

如果显示诸如, 之类的短语,则表示未公开端口。

CONTAINER ID   IMAGE                        COMMAND                  CREATED          STATUS          PORTS                                            NAMES
6f4edb2c4f8a   redis                        "docker-entrypoint.s…"   5 seconds ago    Up 4 seconds                                                     some-redis

当然,你连redis-cli都连不上

> redis-cli -p 6379

Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>

看上面的问题,好像端口应该是自动的public.

如何在 docker redis 中公开网络模式主机的端口?

检查你的机器,--net=host 只能在 linux 中工作。 https://docs.docker.com/network/host/

The host networking driver only works on Linux hosts, and is not supported on Docker Desktop for Mac, Docker Desktop for Windows, or Docker EE for Windows Server.