zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Navicat 导入数据报错 --- 1153
    VS2015创建的Asp.net WebApi默认项目在CentOS7+Mono4.2.2+jexus5.8运行不起来的解决方案
    CentOS 6.5安装MySQL中文乱码问题解决
    Centos上Apache重启,mysql重启, nginx 重启方法
    linux自己带的apache重新启动
    CentOS Linux系统下更改Apache默认网站目录
    C语言王国探秘一
    《JavaScript权威指南》学习笔记 第一天。
    《JavaScript权威指南》学习笔记 第二天 下好一盘大棋
    Js里面的强制类型转换
  • 原文地址:https://www.cnblogs.com/ahaii/p/6912080.html
Copyright © 2011-2022 走看看