1、首先我们来编写一个基本的Dockerfile
在任意一个目录下
$ vi Dockerfile
内容填写如下:
FROM ubuntu:14.04
RUN apt-get update
RUN apt-get -y install redis-server
EXPOSE 6379
ENTRYPOINT ["/usr/bin/redis-server"]
2、构建并运行容器
在编写完Dockerfile之后,我们就可以运行一下命令来构建一个镜像:
$ sudo
docker build -t <your username>
/redis
.
注意这句命令的后面的那个 "."是不可缺少的。
稍等片刻后镜像就会创建完成。接着我们通过运行docker run命令来生成构建好的容器了:
$ sudo
docker run --name redis -d <your username>
/redis
其中-d参数表示我们希望通过detached模式来运行容器,也就是让容器持续地在后台运行。
3、创建并连接测试容器
我们可以通过使用docker run带上一个-link参数把生成好的Redis容器链接到新建的测试容器上,使得不需要暴露任何端口就可以让测试容器访问Redis服务了:
$ sudo
docker run --link redis:db -i -t ubuntu:14.04
/bin/bash
通过上面的命令,我们把redis容器链接到了新的ubuntu容器上,并且取名为db,这样我们就只会把Redis服务暴露给这个容器而不是更大的范围。
接下来我们在测试容器里装上redis-cli:
$ apt-get update
$ apt-get -y install redis-server
$ service redis-server stop
由于使用了-link参数,我们会发现环境变量中产生了一些DB_开头的变量:
$
env
|
grep
DB_
DB_NAME=/condescending_mclean/db
DB_PORT_6379_TCP_PORT=6379
DB_PORT=tcp://172.17.0.6:6379
DB_PORT_6379_TCP=tcp://172.17.0.6:6379
DB_PORT_6379_TCP_ADDR=172.17.0.6
DB_PORT_6379_TCP_PROTO=tcp
于是我们就可以在测试容器中通过这些变量连接到Redis服务了:
$ redis-cli -h $DB_PORT_6379_TCP_ADDR
$ redis 172.17.0.6:6379>
$ redis 172.17.0.6:6379>
set
hello world
OK
$ redis 172.17.0.6:6379> get hello
"world"
$ redis 172.17.0.6:6379>
exit
至此一个包含Redis服务的Docker容器就创建完成了。