Docker - 第五章 | 安裝Redis
前面主要是介紹了下 Dockerfile 的一些常用命令的說明。我們知道,利用 Dockerfile 可以建立一個新的Image,比如運行 Java 環境,就需要一個JDK環境的Image,但直接使用公共的Image時,一般上大小都比較大。所以本章節就主要結合 Dockerfile 文件,建立屬於自己的 Image ,同時對 Image 進行壓縮和優化,同時也是對 Dockerfile 知識的一個實踐。
搜尋 Image
拉取 Image
查看 Image
執行 Image 以下提供兩種執行指令,主要差異是在data掛載在預設的位置,或是將其指定到本機上。
1 docker run --name myredis -p 6379:6379 -d redis:3.2 redis-server --appendonly yes
–name myredis :將 Container 取名為 myredis
-p 6379:6379 :將 Container 的 6379 Port 映射到主機的 6379 Port (前面代表主機,後面代表容器)
-d :後台執行 Container ,並返回ID
redis-server –appendonly yes : 在 Container 執行 redis-server 啟動命令,並打開redis持久化配置
1 2 cd /Users/morose/Documents/Temp/Docker/Redis docker run --name myredis -p 6379:6379 -v $PWD/data:/data -d redis:3.2 redis-server --appendonly yes
–name myredis :將 Container 取名為 myredis
-p 6379:6379 :將 Container 的 6379 Port 映射到主機的 6379 Port (前面代表主機,後面代表容器)
-v $PWD/data:/data:將主機當前目錄下的data目錄掛載到 Container 的 /data 。
-d :後台執行 Container ,並返回ID
redis-server –appendonly yes : 在 Container 執行 redis-server 啟動命令,並打開redis持久化配置
主機當前目錄下的data目錄掛載到 Container 的 /data
進入 Container 1 docker exec -it myredis bash
-i :即使沒有附加也保持STDIN 打開
-t :分配一個偽終端
資料庫測試
Redis Client 測試 這邊使用了 [Desktop Manager] 工具來做連線測試,這邊推薦幾個 Redis Client 工具,每個工具都有其特色,建議找個自己用的習慣的工具來做使用,必會事半功倍。
恭喜!這邊已經建立一個Redis可以做使用了。
使用 Dockerfile 建立 首先,建立目錄 redis 用於存放後面的相關東西。
data:目錄將映射為redis容器配置的/data目錄做為redis資料持久化的存儲目錄
進入建立的 redis 目錄,建立Dockerfile:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 FROM debian:jessieRUN groupadd -r redis && useradd -r -g redis redis RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ wget \ && rm -rf /var/lib/apt/lists/* ENV GOSU_VERSION 1.7 RUN set -x \ && wget -O /usr/local /bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION /gosu-$(dpkg --print-architecture) " \ && wget -O /usr/local /bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION /gosu-$(dpkg --print-architecture) .asc" \ && export GNUPGHOME="$(mktemp -d) " \ && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \ && gpg --batch --verify /usr/local /bin/gosu.asc /usr/local /bin/gosu \ && rm -r "$GNUPGHOME " /usr/local /bin/gosu.asc \ && chmod +x /usr/local /bin/gosu \ && gosu nobody true ENV REDIS_VERSION 3.2 .0 ENV REDIS_DOWNLOAD_URL http://download.redis.io/releases/redis-3.2 .0 .tar.gzENV REDIS_DOWNLOAD_SHA1 0 c1820931094369c8cc19fc1be62f598bc5961caRUN buildDeps='gcc libc6-dev make' \ && set -x \ && apt-get update && apt-get install -y $buildDeps --no-install-recommends \ && rm -rf /var/lib/apt/lists/* \ && wget -O redis.tar.gz "$REDIS_DOWNLOAD_URL " \ && echo "$REDIS_DOWNLOAD_SHA1 *redis.tar.gz" | sha1sum -c - \ && mkdir -p /usr/src/redis \ && tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1 \ && rm redis.tar.gz \ && make -C /usr/src/redis \ && make -C /usr/src/redis install \ && rm -r /usr/src/redis \ && apt-get purge -y --auto-remove $buildDeps RUN mkdir /data && chown redis:redis /data VOLUME /data WORKDIR /data COPY docker-entrypoint.sh /usr/local /bin/ ENTRYPOINT ["docker-entrypoint.sh" ] EXPOSE 6379 CMD [ "redis-server" ]
通過Dockerfile建立一個鏡像,替換成你自己的名字。
1 $ docker build -t redis:3.2 .
建立完成後,我們可以在本地的鏡像列表裡查找到剛剛建立的鏡像。
註:以上參考了RUNOOB.COM 的 Docker 安装 Redis 文章。