Как вытащить 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 на хосте