Как вытащить redis.sock с Docker
· 1 мин. чтения
Для одной задачи мне потребовалось подключиться к Redis внутри контейнера с хоста напрямую через redis.sock
В redis репозитории docker'a такой информации нет, а на сайтах устаревшие или нерабочие способы.
Вкратце
-
wget http://download.redis.io/redis-stable/redis.conf -
Ищем, раскомментируем и заменяем
unixsocketиunixsocketpermнаunixsocket /data/redis.sock unixsocketperm 777
-
docker run -d -v $PWD:/data redis redis-server /data/redis.conf
redis.sock появится после запуска контейнера
Что мы сделали
- Заставили Redis использовать unixsocket и поместить его в
/dataвнутри контейнера - Пробросили текущую директорию хоста в
/dataв контейнере. Там оказалсяredis.conf - З апустили
redis-serverуказав ему свой кастомный конфиг, который мы пробросили в контейнер - Redis увидел в нем, что нужно поместить сокет в /data, что и сделал
- Поскольку эта директория общая для двух систем, мы увидели redis.sock на хосте