本文基于 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 容器已被成功创建;