A server 是一个容器、我通过 commit 生成镜像,然后在把镜像save打包成一个压缩包。B server 是一个容器、是通过A server打包的镜像生成的、却少了几个数据库,这是怎么回事?其中 B Server中的 shoe 也是我自己的数据库、却打包成功了,其它标红的却没有。
解决方案 »
- Cinder创建的Volume,Attach后虚拟机内没有/dev/vdc
- OpenStack的架构详解(不看后悔的文章)
- 华为的FuisonManager产品能否管理VMware的虚拟化环境?
- FusionSphere Foundation版(试用版)软件下载指导
- 服务器经过哪些测试后,才可以给用户使用?
- 阿里云建站全过程
- Docker for windows 下运行php-fpm, 宿主机无法连通9000端口
- 通过dockerfile构建镜像问题!!
- 多网卡下vmware workstation nat映射问题
- Hadoop中运行jps 只显示 11158 JPS
- 我只想在windows上运行打包好的镜像?
- 求教:docker 镜像制作:由平时安装操作系统的镜像转换成docker镜像的方法
2、你标红的数据库是否有数据
3、你启动B的时候为什么加-e 这个参数,不加-e试试
4、你启动B的时候把 -e MYSQL_DATABASE设置成你标红的三个数据库
1、A 是网易镜像拉取的
2、有数据、是在run完容器时候、手动create 的数据库
3、-e 是启动 A 的时候加的、因为我运行容器的时候就需要那个数据库
4、如果B 启动的时候加 -e 会覆盖掉我原先创建的数据库
2、docke的文件系统ufw联合式文件系统,加-e 即使容器关闭,只要重启就会重新加载
3、重启容器a,看看是否有ecshop,xcp
建议:
如果是公司使用建议自己构建镜像,对于关键数据用volume备份
2、不太明白
3、重启a、这两个数据库依然存在,不会消失
你启动b时候的命令是什么
2、不太明白
3、重启a、这两个数据库依然存在,不会消失
你启动b时候的命令是什么1、你的镜像应该是官方的镜像,官方修改了mysql,下面是mysql镜像i1启动mysql的脚本,
https://github.com/docker-library/mysql/blob/master/8.0/docker-entrypoint.sh
2、当你创建容器的时候就会执行这个脚本
你通过-e这个参数设置了环境变量
你设置MYSQL_DATABASE这个参数
3、当你提交成镜像时会保存环境变量
4、当你启动b的时候,会执行这个脚本,由于环境变量中有MYSQL_DATABASE的配置,会创建这个数据库,问题排查
1、查看b的日志是否会初始化数据库
2、查看mysql的日志是否对数据进行操作
3、查看数据库的是否有数据,select 命令
我的镜像是网易蜂巢mysql镜像、地址如下:
https://c.163.com/hub#/m/repository/?repoId=29551、并没有初始化、还存留我在a 的操作数据。
2、有a操作记录日志
3、有a的数据启动命令为:
docker run -d --name mysql -p 3306:3306 b/mysql
因为在a 的时候我就指定了root帐号、以及创建了我的数据库、所以我在b的时候就只运行不做其它参数操作
我的镜像是网易蜂巢mysql镜像、地址如下:
https://c.163.com/hub#/m/repository/?repoId=29551、并没有初始化、还存留我在a 的操作数据。
2、有a操作记录日志
3、有a的数据启动命令为:
docker run -d --name mysql -p 3306:3306 b/mysql
因为在a 的时候我就指定了root帐号、以及创建了我的数据库、所以我在b的时候就只运行不做其它参数操作不太清楚别人对mysql进行了哪些改动,建议你自己构建镜像使用,提交镜像最好容器停止服务,可能带来一些问题
一般来说commit 了之后、就会把容器全部生成镜像啊,包括容器里面操作的数据,难道真的是我这源镜像有问题?为了避免错误、我停止了容器在操作的
一般来说commit 了之后、就会把容器全部生成镜像啊,包括容器里面操作的数据,难道真的是我这源镜像有问题?为了避免错误、我停止了容器在操作的我做了实验,查看mysql的存储位置/var/lib/mysql,中只存了MYSQL_DATABASE=shoe指定的数据库,
也就是说其它的数据库没有持久化,可能是写在内存,或临时文件中,
在启动b的时候会执行脚本,可能因为并没有持久化才会造成数据丢失
那是不是制作完了容器之后、就需要持久化,手动持久化吗?怎么操作的
要持久化就是容器启动时指定MYSQL_DATABASE=shoe,只能有一个,如果要使用多个就自己构建镜像