docker pull redis

1
docker run --name myredis -d redis

-d d 参数让容器在后台运行

####启动客户端

1
2
3
4
5
6
7
8
9
10
11
$ 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

能将两个容器神奇地连接在一起,是通过 docker run 命令的 –link myredis:redis 参数实
现的。这个参数告诉 Docker 把新容器与现存的“myredis”容器连接起来,并且在新容器
中以“redis”作为“myredis”容器的主机名。为了实现这一点,Docker 会在新容器中的 /
etc/hosts 里添加一个新条目,把“redis”指向“myredis”的 IP 地址。这样就能够在执行
redis-cli 的时候直接使用“redis”作为主机名,而不需想办法找出或传递 Redis 容器的 IP
地址给 redis-cli。

我们怎样才能做数据的持久保存和备份?为此,我们不会使用标准的容器文件系统,而是需要一个能够让容器与主机,或容器
与其他容器之间轻松共享数据的方式。Docker 通过数据卷(volume)的概念提供了这种
方式。数据卷是直接在主机挂载的文件或目录,不属于常规联合文件系统的一部分。

第一种是在 Dockerfile 里使用 VOLUME 指令,第二种是在执行
docker run 的时候使用 -v 参数。

1
2
3
4
5
6
7
8
9
10
11
12
13
$ docker run --rm -it --link myredis:redis redis /bin/bash
root@09a1c4abf81f:/data# redis-cli -h redis -p 6379
redis:6379> set "persistence" "test"
OK
redis:6379> save
OK
redis:6379> exit
root@09a1c4abf81f:/data# exit
exit
$ docker run --rm --volumes-from myredis -v $(pwd)/backup:/backup \
debian cp /data/dump.rdb /backup/
$ ls backup
dump.rdb

$ docker stop myredis
myredis
$ docker rm -v myredis