用官方的mysql 镜像需要修改一些内容,比如配置文件的修改,DB数据文件的目录等,更改之后如果重新运行容器,改过的文件就无效了,新生成的容器不会有之前改变的内容
第一种是修改官方下载的镜像,修改之后 提交一个新的镜像文件 docker commit -m 等新生成的镜像信息,
第二种MYSQL的DB数据,容器关闭后 如果用 docker restart 重启同一容器,那么数据是正常的,如果重新docker run 容器那么数据就不会显示,因为每个容器都有一个文件地址
这就需要把数据文件挂载出来,供其它容器读取,
在docker中启动mysql容器,在mysql容器中对数据库的更改(如创建数据库,更改数据等),在commit后再次进入容器发现之前的更改全部没有保存
1.后台运行mysql容器,设置容器名称为mysql:
[root@localhost ~]# docker run --name=mysql -p 3306:3306 -d owenchen1992/mysql
f80791a0daf194fdba94f16a9d89ebec8ba8fbd8af28d3ea8b599b9d705f85ba
2.进入容器bash和mysql,创建一个数据库TEST_DB,并验证TEST_DB创建成功:
[root@localhost ~]# docker exec -it mysql bash root@f80791a0daf1:/# mysql -uroot -p
show databases;
create database TEST_DB;
3.退出容器,并commit更改到镜像