2017-11-01 17 views
0

나는 memcached의 두 개의 도커 - 작성 서비스를 시작하고 싶다. 나는 두 가지 인스턴스에 대해 docker 표준 memcached 이미지를 사용하고 있습니다. Memcached는 수신 대기중인 포트를 변경하기 위해 환경 변수를 사용할 수 있어야하지만 제대로 작동하지 않는 것 같습니다.docker-compose에서 두 개의 다른 포트에서 두 개의 memcached 인스턴스를 시작하는 방법은 무엇입니까?

내 고정 표시기 - 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 
... 

용기는 제대로 시작되지만 ENV 변수는 뽑힐하지 않는 것 :

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 

이 사람이 사용할 변수를 알고 있나요. 아니면 내가 놓친 다른 것입니까?

답변

0

당신은 memcache에 의해 사용되는 고정 표시기 포트를 변경할 필요가 없습니다, 당신은 단순히 이런 식으로이있을 수 있습니다

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 

어쨌든 당신이 사용하고있는 변수를 확인합니다. Dockerfile에 의해 EXPOSE와 다른 포트를 사용해서는 안됩니다.

+0

다른 컨테이너에 있기 때문에 동일한 포트에서 실행할 수 있음을 알고 있습니다. 그러나이 경우 나는 다른 항구에 있기를 원한다. 노출 된 포트는 주어진 변수로 변경해야합니다. memcached의 Dockerfile을 살펴보면 포트가 구성 가능하지 않음을 알 수 있습니다. Dockerfile을 직접 만들어야한다고 생각합니다. –

+0

그게 맞습니다. – Stefano