YD's blog

Posted 一 16 5月 2016

Intalling Redis on Docker

我們要先利用Dockerfile建立一個docker的映像檔:

FROM        ubuntu:14.04
RUN         apt-get update && apt-get install -y redis-server
EXPOSE      6379
ENTRYPOINT  ["/usr/bin/redis-server"]


且檔名為Dockerfile。這時候還沒有建任何的映像檔,直到輸入下列指令:
docker build -t /redis  //上層目錄


接著我們根據建好的映像檔來啟一個容器並命名為 redis-d 表容器處於detached mode,也就是容器會在背景執行。 -p 則是希望container能連接到localhost端:
$ docker run --name redis -p 6379:6379 -d /redis


方法二


另一個方法是我們讓 redisdb 透過 --link 連結。並進入容器的bash模式:

docker run --link redis:db -i -t ubuntu:14.04 /bin/bash


並執行:
$sudo apt-get update
$sudo apt-get install redis-server
$sudo service redis-server stop


又因前述使用了 --link redis:db ,Docker在我們的容器內已生成了環境變數:
$ env | grep DB_

//Should return something similar to this with your values DB_NAME=/violet_wolf/db DB_PORT_6379_TCP_PORT=6379 DB_PORT=tcp://172.17.0.33:6379 DB_PORT_6379_TCP=tcp://172.17.0.33:6379 DB_PORT_6379_TCP_ADDR=172.17.0.33 DB_PORT_6379_TCP_PROTO=tcp



接著就可以在container內下redis-cli指令後,進行redis指令的操作了!
$ redis-cli -h $DB_PORT_6379_TCP_ADDR
$ redis 172.17.0.33:6379>
$ redis 172.17.0.33:6379> set docker awesome
OK
$ redis 172.17.0.33:6379> get docker
"awesome"
$ redis 172.17.0.33:6379> exit


因為前述已經使用 -p 6379:6379 此時已經可以透過api連到外面去了! (e.g. 192.168.99.100:6379)


額外補充


筆記一: 如果要重新啟動container? $docker start 即可。

筆記二: 若不知道無核再次於docker內操作redis?

$docker start ydredis //後進入bash模式
$docker exec -it ydredis bash //接著必須先查看一下docker engine此時賦予container的ip
$ifconfig //查看ip
$redis-cli -h  //就可以開始下redis指令了!

Category: WorkNote
Tags: Docker