標籤:
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容器就建立完成了。
構造並運行一個Redis容器