Debian 通过 Docker 安装 PostgreSQL 数据库
卸载旧版本:
sudo apt-get remove docker docker-engine docker.io containerd runc
1,更新apt包索引:
sudo apt-get update
2,安装包以允许apt通过HTTPS使用存储库:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
3,添加Docker的官方GPG密钥:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
通过搜索指纹9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88的最后8个字符,验证您现在拥有带指纹的密钥 。如下图:
sudo apt-key fingerprint 0EBFCD88
4,使用以下命令设置稳定存储库。
- 本机x86_64架构,设置如下():
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
- x86_64/amd64架构设置 ##
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
- armhf 架构设置 ##
sudo add-apt-repository \
"deb [arch=armhf] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
- arm64架构 ##
sudo add-apt-repository \
"deb [arch=arm64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
5,安装最新版本的Docker,或者转到下一步安装特定版本:
sudo apt-get install docker-ce docker-ce-cli containerd.io
6,通过运行hello-world 映像验证是否正确安装了Docker CE 。
sudo docker run hello-world
## 安装 PostgreSQL 数据库
1.查询postgresql镜像 docker search postgres 选择第一个镜像,ok
2、获取最新的版本的 postgresql
docker pull postgres
获取指定版本的
docker pull postgres:14.2
3、查看镜像拉取是否成功
docker images
4、创建数据库文件挂载文件夹
mkdir -p /data/postgresql
5、启动docker 镜像
docker run --name postgresql --restart=always --privileged=true -e POSTGRES_PASSWORD=111111 -p 15432:5432 -v /data/postgres:/var/lib/postgresql/data -d postgres
指令说明:
run: 创建并运行一个容器
--name: 指定创建的容器的名字;
--restart=always 表示容器退出时,docker会总是自动重启这个容器;
-e POSTGRES_PASSWORD=password: 设置环境变量,指定数据库的登录口令为password;
-p 5432:5432: 端口映射将容器的5432端口映射到外部机器的5432端口;
-v /data/postgresql:/var/lib/postgresql/data 将运行镜像的/var/lib/postgresql/data目录挂载到宿主机/data/postgresql目录
-d postgres:11.4: 指定使用postgres:11.4作为镜像。
6、进入启动的 postgresql 容器
docker exec -it postgresql /bin/bash
进入容器后退出容器:
exit
7、删除容器
docker rm <容器名称> 或 容器ID
docker rm postgresql
8、删除 docker 镜像
docker rmi [image name][image id]
清理无用的镜像
docker image prune -a
## 迁移 PostgreSQL 数据库
1、提交容器id 变成 镜像
docker commit -p 30b8f18f20b4 container-backup
查看镜像提交是否成功
docker images
2.把镜像压缩保存到本地路径
docker save -o ~/container-backup.tar container-backup
3、把镜像拷贝到其他服务器上
scp ~/container-backup.tar root@43.221.34.73:/home/
4、把数据库文件拷贝到另一个服务器(重要,不然数据库丢失,这个是数据库关键数据)
scp -r /data/postgres root@43.221.34.73:/data/
5、查看容器启动没有
docker ps -a
6、如果拷贝的镜像 name 和 tag 为空 none,修改镜像id的名称和标签
如:docker tag 容器id 名称:标签
docker tag 60f0710d261d postgres:latest
7、另一台服务器加载镜像
docker load -i /home/postgres-backup.tar
8、启动容器, 数据库文件放到外面 /data/postgres
docker run --name postgresql --privileged=true --restart=always -e POSTGRES_PASSWORD=111111 -p 15432:5432 -v /data/postgres:/var/lib/postgresql/data -d postgres
9、 开始停止容器运行
docker start | stop | restart postgresql
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。