Docker實戰(六):Docker安裝Redis
阿新 • • 發佈:2018-12-26
Docker安裝Redis
初次使用Docker安裝各種環境,果然是一堆坑啊,坑,坑,坑,坑死我了。。
大概步驟:
- 上傳Redis到宿主機,或者在宿主機中下載
- 編寫Dockerfile構建映象
- 編寫supervisor配置檔案
- build和run
Redis安裝
# 下載安裝Redis
$ wget http://download.redis.io/releases/redis-3.0.5.tar.gz
$ tar xzf redis-3.0.5.tar.gz
$ cd redis-3.0.5
$ make
# make完成之後,可以執行make test來驗證
$ make test
# 啟動redis server,使用預設的redis.conf配置
$ cd src
$ ./redis-server ../redis.conf
# 啟動redis client來連線server,登入密碼可以參考redis.conf配置
$ cd src
$ ./redis-cli
# 參考:
http://redis.io/download
# 如果以上操作都沒問題,就說明redis已經安裝和啟動成功了
Dockerfile檔案
############################################
# version : birdben/redis:v1
# desc : 當前版本安裝的redis
################## ##########################
# 設定繼承自我們建立的 tools 映象
FROM birdben/tools:v1
# 下面是一些建立者的基本資訊
MAINTAINER birdben (191654006@163.com)
# 設定環境變數,所有操作都是非互動式的
ENV DEBIAN_FRONTEND noninteractive
# 新增 supervisord 的配置檔案,並複製配置檔案到對應目錄下面。(supervisord.conf檔案和Dockerfile檔案在同一路徑)
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
# 設定 redis 的環境變數,若讀者有其他的環境變數需要設定,也可以在這裡新增。
ENV REDIS_HOME /software/redis-3.0.0
ENV LC_ALL C
# 複製 redis-3.0.0 檔案到映象中(redis-3.0.0資料夾要和Dockerfile檔案在同一路徑)
ADD redis-3.0.0 /software/redis-3.0.0
# 掛載/redis目錄
VOLUME ["/redis"]
# 容器需要開放Redis 6379埠
EXPOSE 6379
# 執行supervisord來同時執行多個命令,使用 supervisord 的可執行路徑啟動服務。
CMD ["/usr/bin/supervisord"]
Dockerfile原始檔連結:
supervisor配置檔案內容
# 配置檔案包含目錄和程序
# 第一段 supervsord 配置軟體本身,使用 nodaemon 引數來執行。
# 第二段包含要控制的 2 個服務。每一段包含一個服務的目錄和啟動這個服務的命令。
[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D
[program:redis]
# 注意這裡指定的redis.conf檔案路徑,必須是絕對路徑
command=/software/redis-3.0.0/src/redis-server /redis/redis.conf
控制檯終端
# 構建映象
$ docker build -t="birdben/redis:v1" .
# 執行已經構件好的映象
$ docker run -p 9999:22 -p 6379:6379 -t -i -v /docker/redis:/redis "birdben/redis:v1"
遇到的問題和解決方法
# supervisor配置檔案內容
# 注意這裡指定的redis.conf檔案路徑,必須是絕對路徑
# 好用
command=/software/redis-3.0.0/src/redis-server /redis/redis.conf
# 不好用
command=/software/redis-3.0.0/src/redis-server ../redis.conf
參考文章: