1.查看容器信息
2.首先停止要打包的容器
不想停止打包可以创建一个快照镜像 new_image_name是新镜像的名称
docker commit -p CONTAINER_ID new_image_name
3.导出 MySQL 容器中的数据到本地: 这里我把数据保存到home目录下了
docker cp 导出的数据目录,后面在其他服务器容器运行需要写对,不然加载不到数据
docker cp mysql8.0:/var/lib/mysql /home/mysql_data
4.使用 docker commit
命令将包含数据的容器保存为新的镜像:其中 mysql_with_data
是新镜像的名称。
docker commit -p mysql8.0 mysql_with_data
5.使用 docker save
命令将新的镜像保存到文件中:
docker save -o mysql_with_data.tar mysql_with_data
现在你就可以将 mysql_with_data.tar
文件迁移到其他服务器(还有mysql_data的文件),并使用 docker load
命令加载该镜像,然后在其他服务器上运行 MySQL 容器。
查找tar文件在哪个目录下
find / -name "mysql_with_data.tar"
在目标服务器上加载镜像:
docker load -i mysql_with_data.tar
运行容器:
docker run --name=mysql8.0 -p 3306:3306 -v /home/mysql_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=your_password -d mysql_with_data
--name=mysql8.0
:指定容器的名称为mysql8.0
。-p 3306:3306
:将容器的 3306 端口映射到主机的 3306 端口。-v /home/mysql_data:/var/lib/mysql
:将本地路径/home/mysql_data
挂载到容器中的/var/lib/mysql
目录,用于持久化存储 MySQL 数据。我的数据保存位置是home目录下,根据自己保存位置修改-e MYSQL_ROOT_PASSWORD=your_password
:设置 MySQL 根用户的密码为your_password
。-d
:使容器在后台运行。
确保替换 /home/mysql_data
为本地用于持久化存储 MySQL 数据的路径,your_password
为你要设置的 MySQL 根用户密码。
这个命令将在 Docker 中运行一个带有持久化数据的 MySQL 容器,并映射到主机的 3306 端口。