现在的服务器很多是Linux操作系统,系统是内部网络,不能连接外网。如何方便快捷高效部署就成为了考虑事项,而Docker容器化部署就很受欢迎。
Docker是一组平台即服务(PaaS)的产品。它基于操作系统层级的虚拟化技术,将软件与其依赖项打包为容器。托管容器的软件称为Docker引擎。Docker能够帮助开发者在轻量级容器中自动部署应用程序,并使得不同容器中的应用程序彼此隔离,高效工作。
有时候Linux服务器无法安装数据库连接客户端工具,就需要进行手动的命令行进行操作。这种情况下,我们如何进行数据库的导入和导出操作呢?本篇将进行简单介绍。
在了解本篇的内容之前,需要对docker的命令做一个了解。如果需要学习docker命令行操作知识,可以查看我之前的文章:docker命令大全。
docker ps -a
由第一步的结果可知,我们的 mysql 运行在一个叫 mysql_server 的 docker 容器中。而我们要备份的数据库就在里面,叫做 test_db。mysql 的用户名密码均为root,我们将文件备份到/opt/sql_bak文件夹下。示例命令如下:
docker exec -it mysql_server【docker容器名称/ID】 mysqldump -uroot -p123456【数据库密码】 test_db【数据库名称】 > /opt/sql_bak/test_db.sql【导出表格路径】
原理:从外部拷贝sql文件到mysql_server的容器中,然后在容器中执行mysql命令进行导入。
方法1:
先将文件导入到容器 #docker cp **.sql 【容器名】:/root/
进入容器 #docker exec -ti 【容器名/ID】sh
将文件导入数据库 # mysql -uroot -p 【数据库名】 < ***.sql
原理:直接从容器外部进行导入
方法2:
docker exec -i mysql_server【docker容器名称/ID】 mysqltest_db_copy【数据库名称】 < /opt/sql_bak/test_db.sql【本地数据表路径】
全部评论