docker compose将mysql传输到另一台主机
我正在使用docker compose运行MYSQL容器并将其链接到www服务器docker compose将mysql传输到另一台主机,mysql,docker,docker-compose,Mysql,Docker,Docker Compose,我正在使用docker compose运行MYSQL容器并将其链接到www服务器 mysql: image: mysql container_name: lip-mysql ports: - "3030:3306" environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=user-db - MYSQL_USER=user - MYSQL_PASSWORD=user volume
mysql:
image: mysql
container_name: lip-mysql
ports:
- "3030:3306"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=user-db
- MYSQL_USER=user
- MYSQL_PASSWORD=user
volumes:
- ./etc/mysql:/var/lib/mysql
当我在自己的计算机上运行它并想将其传输到生产环境时。我这样做
我应该如何将mysql数据移动到新环境?您可以从您的计算机转储mysql数据库并将其恢复到其他环境中吗 转储数据库:
docker exec -it lip-mysql mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.sql]
还原数据库:
docker exec -it lip-mysql mysql -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]
docker exec-it lip mysql-u[uname]-p[pass][db\u to\u restore]<[backupfile.sql]
您还可以在docker compose文件中固定MySQL docker映像,以避免非预期的MySQL引擎更新。以下是我使用的解决方案
- 首先将您的mysql文件传输到另一个
服务器卷:-./etc/mysql:/var/lib/mysql
- 然后创建docker-compose.yml并像POST一样导入卷
- 我的问题来了。版本编号MYSQL图像。启动mysql时使用相同的版本编号。如果您使用的是最新的标签,您应该会收到使用mysql\u升级的错误消息。如果要使用最新图像,请使用它
mysql:
image: mysql:5.7
container_name: lip-mysql
ports:
- "3030:3306"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=user-db
- MYSQL_USER=user
- MYSQL_PASSWORD=user
volumes:
- ./etc/mysql:/var/lib/mysql
我可以做转储,并在启动时添加这些。但我想如何将其自动存储到硬盘中