Redis 是一种内存数据结构存储,可用作数据库、缓存或消息代理。它支持不同级别的磁盘持久性。
Docker网络
# 下载镜像并创建网络docker image pull redis:alpinedocker image pull russmckendrick/moby-counterdocker network create moby-counter# 启动容器 --network定义启动容器的网络docker container run -d --name redis --network moby-counter redis:alpinedocker container run -d --name moby-counter --network moby-counter -p 8080:80 russmckendrick/moby-counterdocker container ls# ping redisdocker container exec moby-counter ping -c 3 redis# 查看本地网络缓存docker container exec moby-counter cat /etc/hosts# 查看DNS IP moby-counter为创建的网络docker container exec moby-counter cat /etc/resolv.conf# 查询dns解析记录docker container exec moby-counter nslookup redis 127.0.0.11docker network create moby-counter2docker run -itd --name moby-counter2 --network moby-counter2 -p 9090:80 russmckendrick/moby-counter# 无法解析redis 因为处于不同的网络中docker container exec moby-counter2 ping -c 3 redisdocker container exec moby-counter2 cat /etc/resolv.conf# 不能启动两个同名的容器# 若也想使用redis,可通过--network-alias设置别名docker container run -d --name redis2 --network moby-counter2 --network-alias redis redis:alpinedocker container exec moby-counter2 nslookup redis 127.0.0.1Output:Server: 127.0.0.1Address 1: 127.0.0.1 localhostName: redisAddress 1: 172.19.0.3 redis2.moby-counter2# redis实际上是redis2.moby-counter2的别名 解析成172.19.0.3# 显示Docker主机上配置的所有网络docker network ls# 查看有关网络配置的更多信息docker network inspect moby-counter
IP address management (IPAM)
IP 地址管理是一种在网络内规划、跟踪和管理 IP 地址的方法。
IPAM同时拥有DNS和DHCP服务
例如,DHCP为container2分配一个地址,然后更新DNS服务,以便在对Container2进行查找时返回DHCP分配的IP地址。Docker 卷(volumes)
# 当移除容器时 之前数据也无法使用docker container stop redisdocker container rm redis# redis Dockerfile 当容器启动时创建一个卷 /data# 之前的数据保存在卷中VOLUME /dataWORKDIR /datadocker volume ls# 启动时换成自己的卷ID 即可访问之前数据docker container run -d --name redis -v 45c4cb295fc831c085c49963a01f8e0f79534b9f0190af89321efec97b9d051f:/data --network moby-counter redis:alpine# 若启动依旧未连接docker container restart moby-counter# 查看卷内容docker container exec redis ls -lhat /data# 再次删除docker container stop redisdocker container rm redis# 也可使用自己的卷进行覆盖# 创建卷docker volume create redis_data# 使用自己创建redis_data卷来存储数据docker container run -d --name redis -v redis_data:/data --network moby-counter redis:alpine
