云计算
制作一个自己的docker镜像:mysql-8-x64-linux
因为个人学习需要,为软件系统的虚拟容器化,以下将mysql制作为docker镜像,并记录下详细步骤。
欢迎大家学习交流和转载,同时写作不易,如果各位觉得不错,请点赞支持。
备注:以下代码和文章,欢迎复制和转载,请在开头备注清楚“原始网址和作者”,谢谢!
一、实验环境
1.本地电脑:
windows 10 x64 / git version 2.21.0.windows.1
2. 本地docker 构建环境:
CentOS 7.4 x64 / Docker Engine - Community 18.09.6 x64
3. 阿里云构建环境:
代码库:https://code.aliyun.com/03_docker_base/mysql-single
镜像库:https://cr.console.aliyun.com/repository/cn-hangzhou/kevin_docker_registry/docker_base_mysql-single/details4. mysql版本
mysql-cluster-8.0.18-rc-linux-glibc2.12-x86_64.tar.gz
二、编写代码
本地编写dockerfile代码,目录层次如下
1. 目录层次,
dockerfile的代码目录,如下
----|----/03_docker_base/mysql-single/
|----soft/ # 放COPY命令,需要复制的小文件,大文件建议通过-v和VOLUMN方式挂载共享卷方式获得。
|----mysql.conf # mysql的配置参数文件
|----mysql.sh # mysql的启动脚本文件
|----mysql-single-centos.Dockerfile # docker镜像的源代码
|----mysql-single.sh # 个人笔记,记录一下当时操作的命令和步骤
构建环境下面的共享卷的资源目录,如下
----|----/nfs_data/dockerfile/mysql-single/soft/
|----mysql-cluster-8.0.18-rc-linux-glibc2.12-x86_64.tar
2. 代码介绍,如下:
提醒:
最初制作mysql镜像的时候,由于是挂载共享卷,所以共享卷的文件只能被CMD或ENTRYPOINT命令访问,RUN是构建时刻,所以访问不了volumn共享卷的文件。
创建的dockerfile/mysql.sh/mysql.conf 等文件,一定要在linux下面创建和编辑,防止产生特殊字符和非法编码。编码都默认使用UTF-8 BOM。