memcached无法在docker-compose中工作

smi*_*ady 6 php memcached docker-compose

我在docker-compose中的memcached有问题。这是docker-compose.yml:

nginx:
    container_name: nginx
    image: nginx:latest
    ports:
        - 127.0.0.2:8000:80
    volumes:
        - ./htdocs:/htdocs
        - ./nginx.conf:/etc/nginx/conf.d/nginx.conf
    links:
        - php
php:
    container_name: php
    build: ./php
    volumes:
        - ./htdocs:/htdocs
        - ./php/php.ini:/usr/local/etc/php/php.ini  
    links:
        - mysql
        - memcached
mysql:
    container_name: mysql
    image: mysql:latest
    ports:
        - 127.0.0.2:8001:3306
    volumes:
        - ./my.cnf:/etc/mysql/my.cnf
        - ./db:/var/lib/mysql
    environment:
        - MYSQL_ROOT_PASSWORD=root
        - MYSQL_DATABASE=db
        - MYSQL_USER=root
        - MYSQL_PASSWORD=root
memcached:
    container_name: memcached
    image: memcached:latest
    ports:
        - "11211:11211"
Run Code Online (Sandbox Code Playgroud)

这是我的PHP代码:

error_reporting(E_ALL & ~E_NOTICE);

$memcached = new Memcached; 

$memcached->addServer('0.0.0.0', 11211);

echo '<pre>'; print_r($memcached->getServerList()); echo '</pre>';

if($memcached->getStats() === false) {
    echo 'returned false';
} else {
    echo '<pre>'; print_r($memcached->getStats()); echo '</pre>';
}
Run Code Online (Sandbox Code Playgroud)

结果是:

Array
(
     [0] => Array
        (
            [host] => 0.0.0.0
            [port] => 11211
            [type] => TCP
        )
)

returned false
Run Code Online (Sandbox Code Playgroud)

为什么memcached无法看到服务器?(getStats不返回任何内容)命令“ docker ps”以运行端口“ 0.0.0.0:11211->11211/tcp”的形式返回正在运行docker memcached:lastest的列表。对不起我的英语不好。

fro*_*ops 5

只需将主机替换0.0.0.0memcached

主机memcached链接到memcached容器的IP。