先下载docker及启动mysql容器,在使用一段时间后想将当前mysql连容器带数据一块备份了,就不用来回导数据了,也能防止版本不一样导致同步数据出错,
docker exec -it <container_id> bash 命令进入容器
创建mysql源数据备份目录 mkdir /mysqldata/
复制mysql源数据到备份目录 cp -r /var/lib/mysql/ /mysqldata/
修改mysql.cnf :
# mysql镜像版本不同,目录和文件名可能也不同 下面是mysql:8.0.17,最新版的在etc下
vim /etc/mysql/my.cnf
注意!最新版本的mysql容器可能用不了vi vim,此时可以直接将需要修改的文件拷贝到宿主机上去修改,然后再传回来。
# 从容器中复制文件到宿主机
docker cp <container_id>:/path/to/file /path/on/host
# 在宿主机上使用编辑工具修改文件
vi /path/on/host/file
# 将修改后的文件复制回容器
docker cp /path/on/host/file <container_id>:/path/to/file
修改完成后退出容器: exit
# 重启容器
docker restart 容器id
讲当前容器打包成镜像: docker commit -a "zxa" -m "init data" 容器id 镜像名称:镜像标签
或者简单点 docker commit 容器id 镜像名称:镜像标签
保存镜像为Jar
docker save -o 保存名称.tar 镜像名称:镜像标签
此时当前镜像就包含了数据
最后将镜像加载(换个机器)
docker load -i 保存名称.tar
启动:docker run -d --name mysql-v1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 镜像名称:镜像标签
连接一下 就可以看到新镜像是包含mysql数据的