启动redis
容器间连接的大多数场景都是应用服务连接数据仓库。创建连接时的关键是容器名字。给被连接的容器起个友好的名字会让连接变得简单。
运行一个redis,命名成:redis-server。这个redis容器就是我们的数据源容器
1 | docker run -d --name redis-server redis |
创建连接
启动一个容器并连接一个数据源容器需要使用的语句是:*-link <container-name|id>:
别名用来配置应用程序容器是如何调用数据源的配置信息的,当更改到其他环境的时候,就不需要再修改配置信息了。
连接如何工作
这个例子中,我们使用Alpine容器连接到redis-server(别名命名成了redis)。
连接被创建时,docker会做两件事。
一,docker会基于连接,向容器中创建一些环境变量。根据这些环境变量可以根据给定的名字获取到一些信息,比如端口号,ip地址。
通过env命令可以输出所有的环境变量。
1 | docker run --link redis-server:redis alpine env |
二,docker会将容器的Host文件更新3个连接到数据源容器的名字,源名字,别名和hash-id。可以使用cat /etc/hosts来查看。
1 | docker run --link redis-server:redis alpine cat /etc/hosts |
例子
连接建立之后,可以ping数据源容器。
1 | docker run --link redis-server:redis alpine ping -c 1 redis |
连接到应用
连接创建之后,应用容器就可以连接到redis了。
1 | docker run -d -p 3000:3000 --link redis-server:redis katacoda/redis-node-docker-example |
连接到redis-cli
使用下面的命令可以启动一个redis-cli容器,并通过别名连接到redis服务容器。
1 | docker run -it --link redis-server:redis redis redis-cli -h redis |
使用redis的命令查看redis(比如:KEYS *),quit命令用于退出cli。