初次使用Docker安裝各類環境,果真是一堆坑啊,坑,坑,坑,坑死我了。。git
大概步驟:github
Redis安裝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文件docker
############################################ # 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源文件連接:ssh
https://github.com/birdben/birdDocker/blob/master/redis/Dockerfileui
supervisor配置文件內容spa
# 配置文件包含目錄和進程 # 第一段 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
控制檯終端.net
# 構建鏡像 $ docker build -t="birdben/redis:v1" . # 執行已經構件好的鏡像 $ docker run -p 9999:22 -p 6379:6379 -t -i -v /docker/redis:/redis "birdben/redis:v1"
遇到的問題和解決方法code
# 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