docker 下mysql 和postgresql 数据库的搭建以及数据文件的迁移和备份
service docker start - docker 启动
service docker stop - docker 关闭
1.docker 镜像创建—使用的默认镜像有数据卷
docker pull hub.c.163.com/library/mysql:5.7.18 – 获取镜像
docker images - 查看镜像(镜像id)
docker tag mysql:latest tmysql:5.7 – 添加镜像标签
docker rmi –f images_id – 删除镜像 (-f 强制删除镜像)
2.docker 容器的创建
docker run --name tmysql -v /home/dly:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d images_id – 创建并启动容器,同时有挂载配置文件,注意/home/dly权限。
docker run --name ttpostgres -p 5433:5432 -e POSTGRES_PASSWORD=123456 -v /home/dly:/var/lib/postgresql -d postgres:9.6 -- postgresql 容器创建与启动
docker start container – 启动容器
docker stop container – 关闭容器
docker ps –a - 查看容器
docker exec- it container_id /bin/bash – 进入容器
docker inspect tmysql – 查看容器的元数据
3.通过已有的容器创建镜像 存出和载入
docker ps – 查看备份容器的container_id
docker commit -p container_id container-backup - 使用 docker commit 命令来创建快照,生成一个作为Docker镜像的容器快照,
docker images – 查看是否生成镜像
-- # docker tag a25ddfec4d2a arunpyasi/container-backup:test
docker save -o ~/container-backup.tar container-backup - 作为tar包备份。
ls – 查看tar包是否存在。
scp –r ~/ container-backup.tar root@10.2.0.3:/home/dly - 服务器迁移
docker load -i ~/container-backup.tar- 加载该Docker镜像了。
docker images -查看是否镜像下载
docker run -d -p 3306:3306 –-name tmysql container-backup - 运行Docker容器。
docker exec –it contain_id /bin/bash –进入容器
4. 通过已有的数据卷容器的存出和载入,以下方法可以实现数据库文件从一个服务器点迁移到另一个服务器
备份
docker run –it –v /var/lib/mysql –name tmysql image_id - 创建一个带有数据卷的容器.
## 导入数据
docker run --volumes-from container_name -v $(pwd):/backup images_id tar cvf /backup/backup.tar /var/lib/mysql
docker run --volumes-from container_name -v $(pwd):/backup images_id tar cvf /backup/backup.tar /var/lib/postgresql/data
--利用数据卷容器备份,使用 –volumes-from 标记来创建一个加载 data 容器卷的容器,并从主机挂载当前目录到容器的 /backup 目录。容器启动后,在当前目录下生成的backup.tar 文件就是data容器卷的备份文件.
恢复
docker run --name tmysql -p 3306:3306 -v /home/dly:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d image_id -创建一个带有空数据卷的容器 这个镜像自动带有数据卷,i是打开容器中的stdin,t是为容器分配一个伪终端.这里的d是后台运行,并打印容器ID容器,容器运行 。
docker run --volumes-from contain_name -v $(pwd):/backup image_id tar xvf /backup/backup.tar
重启docker
此时打开数据库,数据库文件已经存在
二.postgresql
源文件服务器-- 因为docker 没有安装必要的ssh 和vim 需要单独安装
apt-get update
apt-get install ssh – 安装ssh
#apt-get install vim-gtk – 安装vim
su – postgress
pg_dumpall | ssh root@10.0.0.96 'cat > /var/pgbackup/db.out' – 目录存在 -- 导出数据文件db.out
目标文件服务器-- /var/lib/postgresql/data
docker run --name ttpostgres2 -p 5410:5432 -e POSTGRES_PASSWORD=123456 -v /var:/var/lib/postgresql/data -d postgres:9.6 - 启动容器挂载
docker exec –it ttpostgres2 /bin/bash –进入容器
su – postgres – 切换超级用户
cd /var/lib/postgresql - 进入目标路径
psql -f db.out postgres -- 导入数据文件db.out
尝试过数据卷的方法导入postgresql 数据文件,但是没有成功,只有使用pg_dumpall插件了。
---------------------
作者:D2012LY
来源:CSDN
原文:https://blog.csdn.net/D2012LY/article/details/77851414
版权声明:本文为博主原创文章,转载请附上博文链接!
docker 下mysql 和postgresql 数据库的搭建以及数据文件的迁移和备份的更多相关文章
- ubuntu 下 mysql数据库的搭建 及 数据迁移
1.mysql的安装 我是使用apt-get直接安装的 :sudo apt-get install mysql-server sudo apt-get install mysql-client 2.配 ...
- 关于PDF.NET开发框架对Mysql Sqlite PostgreSQL数据库分页支持的个人看法
关于PDF.NET开发框架的名字由来 在设计www.pwmis.com站点的时候,考虑到架构的兼容性和将来升级的可能性,最重要的是没有足够的时间去为网站添加和维护很多复杂的程序,所以在借鉴前人成功经 ...
- Linux下MySQL/MariaDB Galera集群搭建过程【转】
MariaDB介绍 MariaDB是开源社区维护的一个MySQL分支,由MySQL的创始人Michael Widenius主导开发,采用GPL授权许可证. MariaDB的目的是完全兼容MySQL,包 ...
- 对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析
对Oracle .SQL Server.MySQL.PostgreSQL数据库优缺点分析 Oracle Database Oracle Database,又名Oracle RDBMS,或简称Oracl ...
- Docker下mysql容器开启binlog日志(保留7天)
现有需求开启用Docker容器启动的mysql数据库的binlog,以作为 日志记录 和 数据恢复,我们了解了MySQL的binlog日志的开启方式以及binlog日志的一些原理和常用操作,我们知道, ...
- postgreSQL数据库的监控及数据维护
目前postgreSQL数据库的管理,数据查询等都需要安装postgreSQL软件或安装pgadmin等,远程访问都需要先登录到服务器等繁琐的操作.如果是开发团队,那么每个开发,测试,管理人员都要经历 ...
- MySQL 查询某个数据库中所有包含数据记录的表名
MySQL 查询某个数据库中所有包含数据记录的表名 有时根据实际应用需要,需要对数据进行备份. 如果一个数据库中有很多数据表,但是只想备份包含数据记录的那些表数据(空表不做数据备份). 如果通过如下S ...
- Oracle数据库表空间与数据文件的关系描述正确的是( )
Oracle数据库表空间与数据文件的关系描述正确的是( ) A.一个表空间只能对应一个数据文件 B.一个表空间可以对应多个数据文件 C.一个数据文件可以对应多个表空间 D.表空间与数据文件没任何对应关 ...
- docker下MySQL的主从复制
MySql的主从复制 sudo docker pull MySQL:5.7 拉取MySQL的镜像文件(版本号为 5.7) sudo docker run -p 3339:3306 --name mas ...
随机推荐
- 2019-2020-1 20199302《Linux内核原理与分析》第三周作业
云班课学习内容 一.C语言中嵌入汇编代码 1.内嵌汇编语法 (1)C语言中嵌入汇编代码的写法: asm( 汇编语句模板: 输出部分: 输入部分: 破坏描述部分): 说明:输出部分和输入部分对应着C语言 ...
- 布局 Bootstrap Table的 文本内容 垂直居中
原文:https://blog.csdn.net/peng_hong_fu/article/details/70662979 样式(注意样式优先级): #div-component-info .tab ...
- RookeyFrame 添加 导入功能
我遇到的情况: 我在‘模块管理’里面, 把模块‘客户联系人’的‘允许导入’勾上,保存后,在‘客户联系人’页面没有导入按钮, 模块‘客户主数据’却可以, 这是为什么额?两个模块都是线下创建的,是哪儿不一 ...
- tensorflow serving 模型部署
拉去tensorflow srving 镜像 docker pull tensorflow/serving:1.12.0 代码里新增tensorflow 配置代码 # 要指出输入,输出张量 #指定保存 ...
- laravel 多控制器路由
laravel 路由: ======================================= 公司的情况很不乐观...... 破产清算随时可能发生......
- 《挑战30天C++入门极限》新手入门:C/C++中的结构体
新手入门:C/C++中的结构体 什么是结构体? 简单的来说,结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构 ...
- JS 中的prototype、__proto__与constructor
我们需要牢记两点: ①__proto__和constructor属性是对象所独有的: ② prototype属性是函数所独有的,因为函数也是一种对象,所以函数也拥有__proto__和construc ...
- 编译安装-httpd-2.2.15.tar.gz
编译安装(又称源代码安装) 找到httpd-2.2.15.tar.gz安装包并拖到桌面root文件夹里 解包阶段 tar zxf httpd-2.2.15.tar.gz -C /usr/src 配置阶 ...
- Linux下CFD-Post视图透明的解决方法
今天发生了一件很搞笑的事情,想用CFD-Post对计算结果做后处理,打开CFD-Post之后,背景居然是透明的,见图 做起后处理来完全看不清楚 下面是解决办法,很简单,步骤如下: 在终端中输入 sud ...
- Nginx:fastcgi_param详解
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#脚本文件请求的路径 fastcgi_param QUERY_STRI ...