局域网Docker安装PostgreSql
提前搭建好docker环境
准备postgres11-6.tar镜像
<span class="token function">cd</span> <span class="token function">mkdir</span> docker-data <span class="token function">cd</span> docker-data <span class="token function">mkdir</span> postgres<span class="token function">cd</span> <span class="token function">mkdir</span> docker-data <span class="token function">cd</span> docker-data <span class="token function">mkdir</span> postgrescd mkdir docker-data cd docker-data mkdir postgres
将postgres11-6.tar放入上面的路径下
<span class="token function">sudo</span> docker load -i postgres11.6.tar<span class="token function">sudo</span> docker load -i postgres11.6.tarsudo docker load -i postgres11.6.tar
生成Loaded image ID : sha256:xxxxxxx 表示成功加载
查看所有镜像
<span class="token function">sudo</span> docker images<span class="token function">sudo</span> docker imagessudo docker images
如果存在下列情况
REPOSITORY TAG IMAGE ID CREATED SIZE
2c963c0eb8c6 xxxxx xxxx
则需要修改镜像名
<span class="token function">sudo</span> docker tag <span class="token punctuation">[</span>镜像id<span class="token punctuation">]</span> <span class="token punctuation">[</span>新镜像名称<span class="token punctuation">]</span>:<span class="token punctuation">[</span>新镜像标签<span class="token punctuation">]</span> <span class="token function">sudo</span> docker tag 2c963c0eb8c6 postgres:11.6<span class="token function">sudo</span> docker tag <span class="token punctuation">[</span>镜像id<span class="token punctuation">]</span> <span class="token punctuation">[</span>新镜像名称<span class="token punctuation">]</span>:<span class="token punctuation">[</span>新镜像标签<span class="token punctuation">]</span> <span class="token function">sudo</span> docker tag 2c963c0eb8c6 postgres:11.6sudo docker tag [镜像id] [新镜像名称]:[新镜像标签] sudo docker tag 2c963c0eb8c6 postgres:11.6
<span class="token function">sudo</span> docker run\ --name postgres\ -v /home/sunline/docker-data/postgres:/var/lib/postgresql/data\ -e POSTGRES_PASSWORD<span class="token operator">=</span>123456\ -p 5432:5432\ -d postgres:11.6<span class="token function">sudo</span> docker run\ --name postgres\ -v /home/sunline/docker-data/postgres:/var/lib/postgresql/data\ -e POSTGRES_PASSWORD<span class="token operator">=</span>123456\ -p 5432:5432\ -d postgres:11.6sudo 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两个参数,创建后就会自动进去容器)。
启动后记得查看容器情况
<span class="token function">sudo</span> docker <span class="token function">ps</span> -a<span class="token function">sudo</span> docker <span class="token function">ps</span> -asudo 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)sudo docker postgres (容器名称 或者 容器ID)sudo docker postgres (容器名称 或者 容器ID)
还是启动不了则查看
-v /home/sunline/docker-data/postgres:/var/lib/postgresql/data\
中的/home/sunline/docker-data/postgres路径 该用户是否可以读写操作
如果不行,则删除该目录,重新建立目录
<span class="token function">cd</span> /home/sunline <span class="token function">rm</span> -rf docker-data <span class="token function">mkdir</span> docker-data <span class="token function">cd</span> docker-data <span class="token function">mkdir</span> postgres<span class="token function">cd</span> /home/sunline <span class="token function">rm</span> -rf docker-data <span class="token function">mkdir</span> docker-data <span class="token function">cd</span> docker-data <span class="token function">mkdir</span> postgrescd /home/sunline rm -rf docker-data mkdir docker-data cd docker-data mkdir postgres
启动成功,查看端口是否开启
netstat -ntlpnetstat -ntlpnetstat -ntlp
尝试使用工具远程连接该数据库。
docker stop 容器名称(或者容器ID) docker inspect 容器名称(容器ID) docker <span class="token function">rm</span> 容器名称(容器ID) docker save 镜像id <span class="token operator">></span> 绝对路径 便于自己好找 eg:docker save ef4 <span class="token operator">></span> /oa-data/docker_images_back/ibmjava.tar docker load <span class="token operator"><</span> 绝对路径 便于自己好找 eg:docker load <span class="token operator"><</span> /oa-data/docker_images_back/ibmjava.tar 将静态文件还原为镜像, 并导入docker 更换镜像的名称 docker tag 镜像id 镜像名字:镜像版本 docker rmi 镜像ID docker rmi <span class="token variable"><span class="token variable">`</span>docker images -q<span class="token variable">`</span></span>docker stop 容器名称(或者容器ID) docker inspect 容器名称(容器ID) docker <span class="token function">rm</span> 容器名称(容器ID) docker save 镜像id <span class="token operator">></span> 绝对路径 便于自己好找 eg:docker save ef4 <span class="token operator">></span> /oa-data/docker_images_back/ibmjava.tar docker load <span class="token operator"><</span> 绝对路径 便于自己好找 eg:docker load <span class="token operator"><</span> /oa-data/docker_images_back/ibmjava.tar 将静态文件还原为镜像, 并导入docker 更换镜像的名称 docker tag 镜像id 镜像名字:镜像版本 docker rmi 镜像ID docker rmi <span class="token variable"><span class="token variable">`</span>docker images -q<span class="token variable">`</span></span>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