局域网Docker安装PostgreSql

局域网Docker安装PostgreSql

提前搭建好docker环境

准备postgres11-6.tar镜像

cd mkdir docker-data cd docker-data mkdir postgres 

将postgres11-6.tar放入上面的路径下

sudo docker load -i postgres11.6.tar 

生成Loaded image ID : sha256:xxxxxxx 表示成功加载

查看所有镜像

sudo docker images 

如果存在下列情况

REPOSITORY TAG IMAGE ID CREATED SIZE

2c963c0eb8c6 xxxxx xxxx

则需要修改镜像名

sudo docker tag [镜像id] [新镜像名称]:[新镜像标签]  sudo docker tag 2c963c0eb8c6 postgres:11.6 
sudo docker run\ --name postgres\ -v /home/sunline/docker-data/postgres:/var/lib/postgresql/data\ -e POSTGRES_PASSWORD=123456\ -p 5432:5432\ -d postgres:11.6 

创建容器命令:docker run

-i:表示运行容器

-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。

–name :为创建的容器命名。

-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。

-e:表示传递环境变量

-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射

-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。

启动后记得查看容器情况

sudo docker ps -a 

如果是以下情况,则成功启动

CONTAINER ID IMAGE COMMAND CREATED

ca919d49e902 postgres:11.6 “docker-entrypoin…” 11 minuter ago

STATUS PORTS NAMES

Up 15 seconds 0.0…0.0:5432->5432/tcp postgres

STATUS中 Up表示成功

如果STATUS中 Exited(1)9minutes ago & PORTS 为 空

则表示启动失败。

此时可以采用这个命令启动

sudo docker postgres (容器名称 或者 容器ID) 

还是启动不了则查看

-v /home/sunline/docker-data/postgres:/var/lib/postgresql/data\

中的/home/sunline/docker-data/postgres路径 该用户是否可以读写操作

如果不行,则删除该目录,重新建立目录

cd /home/sunline rm -rf docker-data mkdir docker-data cd docker-data mkdir postgres 

启动成功,查看端口是否开启

netstat -ntlp 

尝试使用工具远程连接该数据库。

 docker stop 容器名称(或者容器ID)  docker inspect 容器名称(容器ID)  docker rm 容器名称(容器ID)  docker save 镜像id > 绝对路径 便于自己好找 eg:docker save ef4 > /oa-data/docker_images_back/ibmjava.tar  docker load < 绝对路径 便于自己好找 eg:docker load < /oa-data/docker_images_back/ibmjava.tar 将静态文件还原为镜像, 并导入docker 更换镜像的名称 docker tag 镜像id 镜像名字:镜像版本  docker rmi 镜像ID  docker rmi `docker images -q` 

原文链接:https://blog.csdn.net/qq_36743202/article/details/118110421

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享