基于 CentOS 基础镜像构建 DB(MySQL) 中间件镜像

本文基于 CentOS 基础镜像构建 DB(MySQL) 中间件镜像。

下面一起来看一下:基于 CentOS 制作 DB 镜像的区别以及 Dockerfile 解析 。。。

好文章 记得收藏+点赞+关注额 !!!

---- Nick.Peng


一、撰写Dockerfile

  • 写好的 Dockerfile 以及解释如下:

    #
    # MAINTAINER        Nick,Y.Peng <[email protected]>
    # DOCKER-VERSION    1.6.2
    #
    # Dockerizing Mariadb: Dockerfile for building Mariadb images
    #
    # 基于上一篇创建的centos:7.1作为此中间件镜像的基础镜像
    FROM csphere/centos:7.1
    MAINTAINER Nick,Y.Peng <[email protected]>   # 指明该镜像的维护者
    
    # 指定环境变量 对应到 /var/lib/mysql目录
    ENV DATA_DIR /var/lib/mysql
    
    # Install Mariadb
    RUN rpm --rebuilddb && \ 
        yum install -y mariadb mariadb-server && \
        yum clean all
    
    # 添加mysql的字符配置文件到指定目录
    ADD mysqld_charset.cnf /etc/my.cnf.d/
    
    COPY scripts /scripts
    # 给上面复制的scripts里的start文件,赋予可执行权限
    RUN chmod +x /scripts/start
    
    # 公开的网络端口,mysql默认3306
    EXPOSE 3306
    
    # 用于将mysql的数据保留下来,即使container被删除
    VOLUME ["/var/lib/mysql"]
    
    # 在容器启动时运行的命令,这里启动的是scripts目录下的start脚本
    ENTRYPOINT ["/scripts/start"]
    

二、构建Docker镜像

  • 执行命令: docker build -t csphere/mysql:5.5 .
  • 命令解析: 后面.的意思是指 Dockerfile 所在目录的相对路径,这里 Dockerfile 在当前路径下,所以用.表示,如果不在当前路径,就写相对路径,例如:./xxx
  • 构建成功, 如图:
    在这里插入图片描述
  • 验证是否构建成功: 在终端输入命令:docker images,如下图 php-fpm:5.4 已被我们成功构建;
    在这里插入图片描述

三、创建Docker容器

  • 通过我们刚刚构建的 Docker 镜像,创建 Docker 容器;
  • 创建容器命令如下:
    docker run -d --name dbserver -p 3306:3306 -v /var/lib/docker/vfs/dir/mydata:/var/lib/mysql csphere/mysql:5.5
  • 查看是否创建成功:
    输入命令:docker ps -a,如图,dbserver 容器已被成功创建;
    在这里插入图片描述

发布了171 篇原创文章 · 获赞 610 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/PY0312/article/details/104675295