如何在docker-compose的两个不同的端口上启动两个memcached实例?

我想启动两个memcached的docker-compose服务。 我正在使用两个实例的docker标准memcached图像。 Memcached应​​该能够使用环境variables来改变它正在监听的端口,但它似乎不工作。

我的docker-compose.yml

... memcached-server: image: memcached environment: MEMCACHED_PORT: 11211 ports: - 11311:11211 networks: - my_net memcached-server-lock: image: memcached environment: MEMCACHED_PORT: 11212 MEMCACHED_CACHE_SIZE: 128 ports: - 11312:11212 networks: - my_net ... 

容器开始正确,但envvariables似乎没有拿起:

 0ae76227b72b memcached "docker-entrypoint..." 17 seconds ago Up 13 seconds 0.0.0.0:11311->11211/tcp mobidesk_memcached-server_1 ab3682361dad memcached "docker-entrypoint..." 17 seconds ago Up 12 seconds 11211/tcp, 0.0.0.0:11312->11212/tcp mobidesk_memcached-server-lock_1 

有谁知道使用哪个variables。 还是我错过了什么?

您不需要更改memcache使用的docker端口,您可以简单地使用它:

 memcached-server: image: memcached ports: - 11311:11211 networks: - my_net memcached-server-lock: image: memcached environment: MEMCACHED_CACHE_SIZE: 128 ports: - 11312:11211 networks: - my_net 

无论如何,你使用的variables是好的。 你不应该使用不同于Dockerfile EXPOSED的端口。