Docker應用三:Dockerfile使用介紹(以安裝redis為例)


Dockerfile使用介紹

 

一、Dockerfile介紹

Dockerfile用於自定義創建docker鏡像,是由一行行命令組成的文件。
Docker file中的命令根據作用分為四類:
1.1、指定基礎鏡像信息指令:
          FROM
1.2、指定維護者信息指令:
          MAINTAINER
1.3、對鏡像操作的指令:
          RUN:后面運行shell命令
          COPY:拷貝本地文件到容器某目錄
          ADD:拷貝本地壓縮包到容器,拷貝完成后在容器內部自動解壓。也支持從url下載文件后拷貝到容器
          VOLUME:指定容器中的某個目錄影射到主機上,可以使用docker inspect contained 查看主機上的對應目錄
          EXPOSE:指定容器內應用運行的端口號
1.4、容器啟動后執行的命令:
          CMD:在容器中執行的命令,若docker run命令后面指定了shell命令,docker file中的CMD指令會被覆蓋
         ENTRYPOINT:在容器中執行的命令,該命令執行一次,不會被覆蓋 
 
二、Dockerfile應用
本例使用Dockerfile構建redis集群鏡像
Dockerfile內容如下:
FROM centos         #依賴centos鏡像

MAINTAINER ahaii    #作者信息

RUN groupadd -r redis && useradd -r -g redis redis    
RUN mkdir /data && chown redis:redis /data
VOLUME ["/data"]                            #將容器中的/data目錄掛在到主機中
ADD redis-3.2.8.tar.gz /data/               #拷貝源碼包,並解壓
RUN yum install -y gcc gcc-c++ net-tools make
WORKDIR /data/redis-3.2.8/src/              #切換目錄
RUN make && make install
Copy redis-master.conf .                    #拷貝配置文件
EXPOSE 6801                                 #指定監聽端口
CMD ["redis-server","redis-master.conf"]    #容器啟動后,啟動redis服務

將Dockerfile、redis源碼包以及redis配置文件放在同一目錄下,然后構建redis-master鏡像,在Dockerfile目錄下執行如下命令:

docker build -t redis-master .

構建完成后,可以使用docker images命令查看。

運行新構建的redis-master鏡像:

docker run --name redis-master -dit -v /etc/localtime:/etc/localtime -p 6379:6379 redis-master

其中,-v /etc/localtime:/etc/localtime表示使用主機時區設置,第一個redis-master表示運行容器的名字,后面的redis-master表示剛才通過build構建的鏡像的名字。

 

查看docker容器內部信息(如ip、物理機掛在位置等):

docker inspect container_name

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM