1.搜索mysql5.7镜像,并下载
搜索命令
docker search mysql
下载命令
docker pull mysql:5.7
查看镜像
docker images|grep mysql
下载完毕后的镜像
[root@iZbp1e9mxelwe7pwimpw8sZ local]# docker images|grep mysql
mysql 5.7-2 791ec8dd389e 5 minutes ago 448MB
mysql 5.7-1 d70d42c82d14 18 minutes ago 448MB
mysql 5.7 a4fdfd462add 3 days ago 448MB
[root@iZbp1e9mxelwe7pwimpw8sZ local]#
2.dockerfile文件内容
文件目录结构:
[root@iZbp1e9mxelwe7pwimpw8sZ local]# ls
aegis bin games init.sql lib libexec mysql mysql.tar nginx redis_dockerfile sbin soft tomcat8
apache-activemq-5.15.12 etc include jdk8 lib64 mq_dockfile mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz mysql_dockerfile redis-4.0.9 redis_install.sh share src
[root@iZbp1e9mxelwe7pwimpw8sZ local]#
初始化的sql文件名字是init.sql,内容:
-- 建库
CREATE DATABASE `user`;
SET character_set_client = utf8;
USE user;
-- 建表
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- 插入数据
INSERT INTO `user` (`name`) VALUES ("小明");
INSERT INTO `user` (`name`) VALUES ("小红");
dockerfile文件内容:
FROM mysql:5.7
WORKDIR /docker-entrypoint-initdb.d
ENV LANG=C.UTF-8
ADD init.sql /docker-entrypoint-initdb.d/
3.构建镜像并启动容器
构建镜像命令:
docker build -f mysql_dockerfile -t mysql:5.7-2 .
启动容器命令:
docker run -itd -p 3306:3306 --name=mysql5.7-2 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7-2
启动容器成功:
[root@iZbp1e9mxelwe7pwimpw8sZ local]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
934d3ecaac05 mysql:5.7-2 "docker-entrypoint.s…" 21 minutes ago Up 21 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql5.7-2
[root@iZbp1e9mxelwe7pwimpw8sZ local]#