使用dockerfile构建mysql详细教学加案例
Dockerfile 文件
# 使用官方5.6版本,latest为默认版本
FROM mysql:5.6
#复制my.cof至容器内
ADD my.cnf /etc/mysql/my.cof
#设置环境变量 密码
ENV MYSQL_ROOT_PASSWORD=123456
my.cof 文件
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
max_connections=100
两个文件在同一个目录下
执行打包命令
mysql2为镜像名称
docker build -t mysql2 .
打包成功后可以看到镜像
docker images
运行构建容器
33062是主机的端口,3306是容器的mysql端口,容器名称–name mysql2,-v文件映射 主机/dockerval/mysql2对应/var/lib/mysql,最后mysql2是镜像名称
docker run -d -p 33062:3306 --name mysql2 -v /dockerval/mysql2:/var/lib/mysql mysql2
构建成功
docker ps 可以看到运行中的容器
问题记录:
如果一开始没有设置my.cnf,那么Dockerfile里的ENV MYSQL_ROOT_PASSWORD=123456 失效,
要在构建容器时加上 -e MYSQL_ROOT_PASSWORD=root
docker run -d -p 33062:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=root -v /dockerval/mysql2:/var/lib/mysql mysql2