Belov Solutions

Использование официального образа Redis в Docker

Введение

В этой статье мы рассмотрим, как использовать официальный образ Redis из Docker Hub. Вы узнаете, как загрузить образ, запустить контейнер в фоновом режиме, взаимодействовать с Redis через redis-cli и создавать резервные копии данных с использованием томов. Примеры приведены для Linux и Windows.

Официальные репозитории

Официальные репозитории Docker Hub предоставляют проверенные образы для популярных приложений, таких как Redis, PostgreSQL или Java. Они помечаются как официальные и отображаются вверху результатов поиска. Их имена не содержат префикса пользователя или используют library, например, redis или library/redis. При загрузке официального образа выводится сообщение: The image you are pulling has been verified.

Загрузка образа Redis

Загрузите официальный образ Redis:

Linux/Windows

docker pull redis
Using default tag: latest
latest: Pulling from library/redis
d990a769a35e: Pull complete
8656a511ce9c: Pull complete
f7022ac152fb: Pull complete
8e84d9ce7554: Pull complete
c9e5dd2a9302: Pull complete
27b967cdd519: Pull complete
3024bf5093a1: Pull complete
e6a9eb403efb: Pull complete
c3532a4c89bc: Pull complete
35fc08946add: Pull complete
d586de7d17cd: Pull complete
1f677d77a8fa: Pull complete
ed09b32b8ab1: Pull complete
54647d88bc19: Pull complete
2f2578ff984f: Pull complete
ba249489d0b6: Already exists
19de96c112fc: Already exists
library/redis:latest: The image you are pulling has been verified.
Important: image verification is a tech preview feature and should not be...
Digest: sha256:3c3e4a25690f9f82a2a1ec6d4f577dc2c81563c1ccd52efdf4903ccdd26cada3
Status: Downloaded newer image for redis:latest

Запуск контейнера Redis

Запустите контейнер в фоновом режиме с помощью флага -d:

Linux/Windows

docker run --name myredis -d redis
585b3d36e7cec8d06f768f6eb199a29feb8b2e5622884452633772169695b94a

Флаг -d запускает контейнер в фоновом режиме, возвращая только его идентификатор. Для просмотра логов используйте:

docker logs myredis

Взаимодействие с Redis через redis-cli

Для взаимодействия с Redis создайте новый контейнер с redis-cli, связав его с контейнером myredis через флаг --link:

Linux/Windows

docker run --rm -it --link myredis:redis redis /bin/bash
root@ca38735c5747:/data# redis-cli -h redis -p 6379
redis:6379> ping
PONG
redis:6379> set "abc" 123
OK
redis:6379> get "abc"
"123"
redis:6379> exit
root@ca38735c5747:/data# exit
exit

Флаг --link myredis:redis создаёт запись в файле /etc/hosts нового контейнера, связывая имя redis с IP-адресом контейнера myredis. Это позволяет использовать имя redis в redis-cli без указания IP-адреса. Команды ping, set и get проверяют соединение и выполняют операции с данными.

Будущие изменения в сетевой среде Docker

В текущих примерах используется флаг --link для связи контейнеров, но в будущем Docker может перейти к модели «публикации сервисов». Однако --link пока поддерживается, и примеры остаются актуальными. Подробности о новых подходах см. в разделе «Новая сетевая среда Docker» (глава 11).

Резервное копирование данных с использованием томов

Для сохранения данных Redis используйте тома, которые монтируются на хосте и не зависят от файловой системы UnionFS. Тома объявляются через инструкцию VOLUME в Dockerfile или флаг -v в docker run. Пример:

VOLUME /data

Или:

docker run -v /data test/webserver

По умолчанию том монтируется в /var/lib/docker/. Для указания каталога на хосте используйте:

docker run -d -v /host/dir:/container/dir test/webserver

Создайте резервную копию данных Redis:

Linux/Windows

docker run --rm -it --link myredis:redis redis /bin/bash
root@a1c4abf81f:/data# redis-cli -h redis -p 6379
redis:6379> set "persistence" "test"
OK
redis:6379> save
OK
redis:6379> exit
root@a1c4abf81f:/data# exit
exit
docker run --rm --volumes-from myredis -v $(pwd)/backup:/backup debian cp /data/dump.rdb /backup/
ls backup
dump.rdb

Флаг --volumes-from подключает тома контейнера myredis, а -v $(pwd)/backup:/backup монтирует каталог backup на хосте. Команда копирует файл dump.rdb в каталог backup.

Остановка и удаление контейнера

Остановите и удалите контейнер myredis:

Linux/Windows

docker stop myredis
myredis
docker rm -v myredis
myredis

Удалите все остановленные контейнеры:

Linux

docker rm $(docker ps -aq)
45e404caa093
e4b31d0550cd
7a24491027fc
...

Windows (PowerShell)

docker rm $(docker ps -aq)
45e404caa093
e4b31d0550cd
7a24491027fc
...

Заключение

Вы узнали, как использовать официальный образ Redis: загружать его, запускать контейнер, взаимодействовать через redis-cli и создавать резервные копии с помощью томов.

Отзывы

Оставить отзыв

Ваша эл. почта не будет опубликована