DOCKER簡明教程 : 透過容器連線REDIS資料庫

精靈雲發表於2016-05-17
序言
  本文重點講解了如何透過Redis的官方映象和Docker容器來搭建redis-cli,並將其連線到Redis映象。首先要跟大家簡單介紹一下Redis,這是一個鍵值儲存系統,除了對場景進行快取之外,Redis還提供了很多強大的功能,因此也目前是非常受歡迎的一個資料庫。

Docker映象倉庫簡介
  大家可以在Docker Hub裡搜尋到目前所有的主流應用和服務的映象,像Python語言、MySQL資料庫等等映象在Docker Hub裡面都有。而且Docker Hub裡面的映象數量非常多,不管我們搜什麼關鍵詞,都能搜出來一大堆結果。之所以會這樣,是因為Docker官方映象倉庫的宗旨就是將已知來源、滿足一定質量標準的Docker映象組織在一起提供給使用者。一般情況下,我建議大家都儘量使用Docker Hub提供的官方映象,大家可以在查詢結果列表中看到當前分類下有哪些官方映象,一般官方映象都會在列表中置頂顯示,而且會有標有“官方”字樣。
  從官方映象倉庫pull映象的時候,使用者名稱的部分可以為空,也可以設定為library,比如說拉取 Casandra映象的時候就可以設定成從Apache Cassandra專案獲取。大家也可以在自己的終端上執行下面的命令,在Docker Hub中查詢Cassandra映象:
$docker search Cassandra 
  透過這種方式對Docker Hub進行查詢的時候,系統會返回一條訊息,提示使用者“你所拉取的映象已透過驗證”,看到這條資訊就表示映象的校驗碼透過了Docker daemon的驗證,來源是可靠的。

快速實現Docker到Redis的連線
  閒話少說,我們下面就進入實戰教程。首先執行下面命令,從Docker Hub拉取Redis映象:
$ docker pull redis 
  執行上面的命令下載映象,Docker daemon會自動輸出該Redis映象的來源資訊、下載狀態,下載完成之後系統也會顯示最終狀態資訊。
  映象拉取完成之後,大家可以用下面的命令啟動Redis容器,記得要帶上“-d”引數:
  $ docker run --name myredis-itsmine -d redis 
  “-d”引數的作用是讓Redis在後臺執行,因為本例中採用這種後臺執行的方式較為合適,所以這裡我們寫上了這個引數。如果不帶 “-d”引數的話處理起來就要麻煩一些,這種情況下我們需要先停止終端的執行或者退出容器,然後才能透過宿主機來訪問Redis。
  下面我們要進行最重要的一步操作,連線Redis。由於我們並沒有實際的需要連線到Redis的應用,所以這裡我們用了redis-cli工具。大家可以在宿主機上安裝redis-cli,不過我建議大家新建一個容器,將redis-cli執行在裡面,然後用下面的命令把這兩個容器連線起來,這樣我們就可以看到詳細的應用資訊:
  $docker run --rm -it --link myredis-itsmine:redis redis /bin/bash 
  執行該命令之後我們就可以在bash命令列下面看到容器的提示資訊了:

root@f75bacab2715:/data#
$ docker run --rm -it --link myredis:redis redis /bin/bash
$ root@af47015c4a76:/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@af47015c4a76:/data# exit
$ exit

  在上面的命令中,docker run命令後面跟的“–link myredis-itsmine:redis” 引數用於建立連線,Docker收到該指令後,就會嘗試將我們新建的容器連線到當前的“myredis-itsmine” 容器,同時會將新容器中的redis-cli命名為“redis”。Docker會在容器中的/etc/hosts路徑下為“redis”建立一個入口,並指向“myredis-itsmine”容器的IP地址。這樣我們就可以在redis-cli中直接使用“redis”作為主機名,這種做法是很方便的,我們不必再去找其他辦法來“發現”Redis的IP地址,然後加以引用了。
  接下來我們就可以透過set和put命令來執行Redis的存取操作了,這裡我們可以用一些示例資料來做個試驗。當然,在開始存取操作之前,大家還要再執行一下Redis的ping命令,驗證一下Redis伺服器是否已經連線上了。
  本文講述瞭如何透過容器來實現Redis資料庫的連線,看到這裡,大家是否已經對容器的網路連線有個初步的概念了?新版的Docker在網路功能方面也做出了一定的改進,相信在不久的將來,所有使用者都可以很方便地透過Docker容器實現應用和服務的互連。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31126106/viewspace-2101246/,如需轉載,請註明出處,否則將追究法律責任。

相關文章