Redis 是一种内存数据结构存储,可用作数据库、缓存或消息代理。它支持不同级别的磁盘持久性。

Docker网络

  1. # 下载镜像并创建网络
  2. docker image pull redis:alpine
  3. docker image pull russmckendrick/moby-counter
  4. docker network create moby-counter
  5. # 启动容器 --network定义启动容器的网络
  6. docker container run -d --name redis --network moby-counter redis:alpine
  7. docker container run -d --name moby-counter --network moby-counter -p 8080:80 russmckendrick/moby-counter
  8. docker container ls
  9. # ping redis
  10. docker container exec moby-counter ping -c 3 redis
  11. # 查看本地网络缓存
  12. docker container exec moby-counter cat /etc/hosts
  13. # 查看DNS IP moby-counter为创建的网络
  14. docker container exec moby-counter cat /etc/resolv.conf
  15. # 查询dns解析记录
  16. docker container exec moby-counter nslookup redis 127.0.0.11
  17. docker network create moby-counter2
  18. docker run -itd --name moby-counter2 --network moby-counter2 -p 9090:80 russmckendrick/moby-counter
  19. # 无法解析redis 因为处于不同的网络中
  20. docker container exec moby-counter2 ping -c 3 redis
  21. docker container exec moby-counter2 cat /etc/resolv.conf
  22. # 不能启动两个同名的容器
  23. # 若也想使用redis,可通过--network-alias设置别名
  24. docker container run -d --name redis2 --network moby-counter2 --network-alias redis redis:alpine
  25. docker container exec moby-counter2 nslookup redis 127.0.0.1
  26. Output:
  27. Server: 127.0.0.1
  28. Address 1: 127.0.0.1 localhost
  29. Name: redis
  30. Address 1: 172.19.0.3 redis2.moby-counter2
  31. # redis实际上是redis2.moby-counter2的别名 解析成172.19.0.3
  32. # 显示Docker主机上配置的所有网络
  33. docker network ls
  34. # 查看有关网络配置的更多信息
  35. docker network inspect moby-counter

IP address management (IPAM)

IP 地址管理是一种在网络内规划、跟踪和管理 IP 地址的方法。

IPAM同时拥有DNS和DHCP服务

例如,DHCP为container2分配一个地址,然后更新DNS服务,以便在对Container2进行查找时返回DHCP分配的IP地址。

Docker 卷(volumes)

  1. # 当移除容器时 之前数据也无法使用
  2. docker container stop redis
  3. docker container rm redis
  4. # redis Dockerfile 当容器启动时创建一个卷 /data
  5. # 之前的数据保存在卷中
  6. VOLUME /data
  7. WORKDIR /data
  8. docker volume ls
  9. # 启动时换成自己的卷ID 即可访问之前数据
  10. docker container run -d --name redis -v 45c4cb295fc831c085c49963a01f8e0f79534b9f0190af89321efec97b9d051f:/data --network moby-counter redis:alpine
  11. # 若启动依旧未连接
  12. docker container restart moby-counter
  13. # 查看卷内容
  14. docker container exec redis ls -lhat /data
  15. # 再次删除
  16. docker container stop redis
  17. docker container rm redis
  18. # 也可使用自己的卷进行覆盖
  19. # 创建卷
  20. docker volume create redis_data
  21. # 使用自己创建redis_data卷来存储数据
  22. docker container run -d --name redis -v redis_data:/data --network moby-counter redis:alpine