Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql postgres上的Docker容器:无法启动最新映像_Postgresql_Docker - Fatal编程技术网

Postgresql postgres上的Docker容器:无法启动最新映像

Postgresql postgres上的Docker容器:无法启动最新映像,postgresql,docker,Postgresql,Docker,我最近下载了docker(MacOSX10.15.4)并安装了它。我按照我在PostgreSQL站点上找到的说明来拉取postgres(最新版本)并运行一个容器。工作得很好。我可以从PgAdmin4连接到它。然后,我决定从生产备份中恢复数据库,我决定在备份存在的地方装载一个额外的卷。我不能用相同的名称启动一个容器,而且我在该容器中没有做任何事情,所以我删除了它和所有卷。在使用与我在附加装载中成功使用的相同命令启动容器之后,我失败了。我决定将Docker重置为出厂设置。这样做之后,我又试了一次。它

我最近下载了docker(MacOSX10.15.4)并安装了它。我按照我在PostgreSQL站点上找到的说明来拉取postgres(最新版本)并运行一个容器。工作得很好。我可以从PgAdmin4连接到它。然后,我决定从生产备份中恢复数据库,我决定在备份存在的地方装载一个额外的卷。我不能用相同的名称启动一个容器,而且我在该容器中没有做任何事情,所以我删除了它和所有卷。在使用与我在附加装载中成功使用的相同命令启动容器之后,我失败了。我决定将Docker重置为出厂设置。这样做之后,我又试了一次。它不起作用。容器启动后立即死亡。我不知道为什么

2020-05-06T11:41:55.463179196-04:00 container create 109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa (image=postgres, name=pg-docker)
2020-05-06T11:41:55.496823194-04:00 network connect 7c37295bd5df3fadec72496e023e329ee966f4c70544a6a6aa0c97e2fab2a903 (container=109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa, name=bridge, type=bridge)
2020-05-06T11:41:55.705673026-04:00 container start 109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa (image=postgres, name=pg-docker)
2020-05-06T11:41:55.812712608-04:00 container die 109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa (exitCode=1, image=postgres, name=pg-docker)
2020-05-06T11:41:55.888199562-04:00 network disconnect 7c37295bd5df3fadec72496e023e329ee966f4c70544a6a6aa0c97e2fab2a903 (container=109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa, name=bridge, type=bridge)
2020-05-06T11:41:55.908164483-04:00 container destroy 109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa (image=postgres, name=pg-docker)
我想这和网络有关,但我不知道是什么。我想也许我的本地主机没有放弃5432,所以我尝试使用-p5435:5432来改变它,但这也不起作用。 我怎样才能知道发生了什么事

我用来运行容器的命令是:

docker run --rm  --name pg-docker -e POSTGRES_PASSWORD=docker -d -p 5432:5432 -v $HOME/Documents/video:/backup -v $HOME/docker/volumes/postgres:/var/lib/postgresql/data  postgres
这来自Docker在尝试启动容器时报告的控制台应用程序:

default 11:41:55.407542-0400    com.docker.driver.amd64-linux   proxy >> HEAD /_ping
default 11:41:55.409288-0400    com.docker.driver.amd64-linux   proxy << HEAD /_ping (1.746372ms)
default 11:41:55.411046-0400    com.docker.driver.amd64-linux   proxy >> POST /v1.40/containers/create?name=pg-docker
default 11:41:55.461261-0400    com.docker.driver.amd64-linux   proxy << POST /v1.40/containers/create?name=pg-docker (50.197222ms)
default 11:41:55.462152-0400    com.docker.driver.amd64-linux   proxy >> POST /v1.40/containers/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa/wait?condition=removed
default 11:41:55.464062-0400    com.docker.driver.amd64-linux   proxy >> POST /v1.40/containers/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa/start
default 11:41:55.464859-0400    com.docker.driver.amd64-linux   proxy >> GET /containers/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa/json
default 11:41:55.465967-0400    com.docker.driver.amd64-linux   osxfsApprover.Approve([src=/Users/jboss/Documents/video,dst=/backup,option= src=/Users/jboss/docker/volumes/postgres,dst=/var/lib/postgresql/data,option=])
default 11:41:55.466197-0400    com.docker.osxfs    Volume.approve /none (paths = [/Users/jboss/Documents/video:state=default, /Users/jboss/docker/volumes/postgres:state=default])
default 11:41:55.466882-0400    com.docker.osxfs    Volume.approve /none (watches [/Users/jboss/docker/volumes/postgres -> /Users/jboss/docker/volumes/postgres (state=default), /Users/jboss/Documents/video -> /Users/jboss/Documents/video (state=default)])
default 11:41:55.466871-0400    com.docker.driver.amd64-linux   proxy << GET /containers/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa/json (2.016717ms)
default 11:41:55.467111-0400    com.docker.driver.amd64-linux   vpnkitApprover.Approve([TCP 0.0.0.0:5432])
default 11:41:55.467338-0400    com.docker.backend  external: GET /forwards/list 200 "Go-http-client/1.1" ""
default 11:41:55.467505-0400    com.docker.driver.amd64-linux   vpnkitExposer.Add(approver-1371561297748223034, [TCP 0.0.0.0:5432 -> 0.0.0.0:0])
default 11:41:55.467730-0400    com.docker.backend  adding docker-proxy-port-approver/approver-1371561297748223034 tcp forward from 0.0.0.0:5432 to 0.0.0.0:0
default 11:41:55.467873-0400    com.docker.backend  external: POST /forwards/expose/port 200 "Go-http-client/1.1" ""
default 11:41:55.468002-0400    com.docker.driver.amd64-linux   vpnkitExposer.Remove(approver-1371561297748223034)
default 11:41:55.468159-0400    com.docker.backend  external: GET /forwards/list 200 "Go-http-client/1.1" ""
default 11:41:55.468420-0400    com.docker.backend  removing docker-proxy-port-approver/approver-1371561297748223034 tcp forward from 0.0.0.0:5432 to 0.0.0.0:0
default 11:41:55.468511-0400    com.docker.backend  stopping accepting connections on docker-proxy-port-approver/approver-1371561297748223034 tcp forward from 0.0.0.0:5432 to 0.0.0.0:0
default 11:41:55.468554-0400    com.docker.backend  external: POST /forwards/unexpose/port 200 "Go-http-client/1.1" ""
default 11:41:55.472629-0400    com.docker.hyperkit [  494.229979] docker0: port 1(vetheef523c) entered blocking state
default 11:41:55.473438-0400    com.docker.hyperkit [  494.230826] docker0: port 1(vetheef523c) entered disabled state
default 11:41:55.474180-0400    com.docker.hyperkit [  494.231632] device vetheef523c entered promiscuous mode
default 11:41:55.475174-0400    com.docker.hyperkit [  494.232437] IPv6: ADDRCONF(NETDEV_UP): vetheef523c: link is not ready
default 11:41:55.538427-0400    com.docker.hyperkit [  494.295944] IPVS: ftp: loaded support on port[0] = 21
default 11:41:55.559931-0400    mDNSResponder   [R757855] DNSServiceQueryRecord(11000, 0, <private>, AAAA) START PID[25818](com.docker.supe)
default 11:41:55.560089-0400    mDNSResponder   [R757856] DNSServiceQueryRecord(11000, 0, <private>, Addr) START PID[25818](com.docker.supe)
default 11:41:55.560372-0400    mDNSResponder   [R757855] DNSServiceQueryRecord(11000, 0, <private>, AAAA) STOP PID[25818](com.docker.supe)
default 11:41:55.560431-0400    mDNSResponder   [R757856] DNSServiceQueryRecord(11000, 0, <private>, Addr) STOP PID[25818](com.docker.supe)
default 11:41:55.591696-0400    mDNSResponder   [R757857] DNSServiceQueryRecord(11000, 0, <private>, Addr) START PID[25818](com.docker.supe)
default 11:41:55.591860-0400    mDNSResponder   [R757858] DNSServiceQueryRecord(11000, 0, <private>, AAAA) START PID[25818](com.docker.supe)
default 11:41:55.592174-0400    mDNSResponder   [R757857] DNSServiceQueryRecord(11000, 0, <private>, Addr) STOP PID[25818](com.docker.supe)
default 11:41:55.592269-0400    mDNSResponder   [R757858] DNSServiceQueryRecord(11000, 0, <private>, AAAA) STOP PID[25818](com.docker.supe)
default 11:41:55.629451-0400    com.docker.hyperkit [  494.387147] eth0: renamed from vethba1ca3b
default 11:41:55.641628-0400    com.docker.hyperkit [  494.399002] IPv6: ADDRCONF(NETDEV_CHANGE): vetheef523c: link becomes ready
default 11:41:55.642402-0400    com.docker.hyperkit [  494.399924] docker0: port 1(vetheef523c) entered blocking state
default 11:41:55.643290-0400    com.docker.hyperkit [  494.400731] docker0: port 1(vetheef523c) entered forwarding state
default 11:41:55.703285-0400    com.docker.driver.amd64-linux   proxy << POST /v1.40/containers/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa/start (239.215298ms)
default 11:41:55.704258-0400    com.docker.driver.amd64-linux   Cancel connection...
default 11:41:55.705234-0400    com.docker.driver.amd64-linux   proxy << POST /v1.40/containers/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa/wait?condition=removed (243.069643ms)
default 11:41:55.705255-0400    com.docker.backend  osxfsSharer.Add(109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa, [src=/Users/jboss/Documents/video,dst=/backup,option= src=/Users/jboss/docker/volumes/postgres,dst=/var/lib/postgresql/data,option=])
default 11:41:55.705529-0400    com.docker.osxfs    Volume.approve docker/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa (paths = [/Users/jboss/Documents/video:state=default, /Users/jboss/docker/volumes/postgres:state=default])
default 11:41:55.705797-0400    com.docker.backend  vpnkitExposer.Add(109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa, [TCP 0.0.0.0:5432 -> 127.0.0.1:5432])
default 11:41:55.705890-0400    com.docker.backend  adding docker-containers/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa tcp forward from 0.0.0.0:5432 to 127.0.0.1:5432
default 11:41:55.705997-0400    com.docker.driver.amd64-linux   proxy >> GET /containers/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa/json
default 11:41:55.706270-0400    com.docker.osxfs    Volume.approve docker/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa (watches [/Users/jboss/docker/volumes/postgres -> /Users/jboss/docker/volumes/postgres (state=default), /Users/jboss/Documents/video -> /Users/jboss/Documents/video (state=default)])
default 11:41:55.706309-0400    com.docker.osxfs    Volume.start docker/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa (paths = [/Users/jboss/Documents/video:state=default, /Users/jboss/docker/volumes/postgres:state=default])
default 11:41:55.706399-0400    com.docker.osxfs    callback_change_opts_if_different pin=true old_opts=state=default new_opts=state=default subtree=((node((path"")(subscribers())(opts((state Default)))(change_opts <fun>)(sub())))(children()))
default 11:41:55.707102-0400    com.docker.osxfs    callback_change_opts_if_different pin=true old_opts=state=default new_opts=state=default subtree=((node((path"")(subscribers())(opts((state Default)))(change_opts <fun>)(sub())))(children()))
default 11:41:55.707885-0400    com.docker.driver.amd64-linux   proxy << GET /containers/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa/json (1.902123ms)
default 11:41:55.810340-0400    com.docker.backend  osxfsSharer.Remove(109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa)
default 11:41:55.810483-0400    com.docker.backend  vpnkitExposer.Remove(109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa)
default 11:41:55.810596-0400    com.docker.osxfs    Volume.stop docker/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa (paths = [/Users/jboss/Documents/video:state=default, /Users/jboss/docker/volumes/postgres:state=default])
default 11:41:55.810616-0400    com.docker.backend  removing docker-containers/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa tcp forward from 0.0.0.0:5432 to 127.0.0.1:5432
default 11:41:55.810762-0400    com.docker.backend  stopping accepting connections on docker-containers/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa tcp forward from 0.0.0.0:5432 to 127.0.0.1:5432
default 11:41:55.811214-0400    com.docker.osxfs    callback_change_opts_if_different pin=false old_opts=state=default new_opts=state=default subtree=((node((path /Users/jboss/Documents/video)(subscribers((docker/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa((container docker/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa)(mount_opts((state Default)))(path_segs(Users jboss Documents video))(osxfs_state((mount((export_path /Users)(export_root /Users)(mount_path /Users)))(nodes <opaque>)(max_read 1048576)(perfstat <opaque>)(chan(<opaque>))(events true)))(node_id 4)))))(opts((state Default)))(change_opts <fun>)(sub((Watch Stopped)))))(children()))
default 11:41:55.811692-0400    com.docker.osxfs    callback_change_opts_if_different pin=false old_opts=state=default new_opts=state=default subtree=((node((path /Users/jboss/docker/volumes/postgres)(subscribers((docker/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa((container docker/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa)(mount_opts((state Default)))(path_segs(Users jboss docker volumes postgres))(osxfs_state((mount((export_path /Users)(export_root /Users)(mount_path /Users)))(nodes <opaque>)(max_read 1048576)(perfstat <opaque>)(chan(<opaque>))(events true)))(node_id 7)))))(opts((state Default)))(change_opts <fun>)(sub((Watch Stopped)))))(children()))
default 11:41:55.812771-0400    com.docker.driver.amd64-linux   proxy >> GET /containers/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa/json
default 11:41:55.823077-0400    com.docker.hyperkit [  494.580710] docker0: port 1(vetheef523c) entered disabled state
default 11:41:55.823694-0400    com.docker.hyperkit [  494.581567] vethba1ca3b: renamed from eth0
default 11:41:55.847177-0400    com.docker.hyperkit [  494.604827] docker0: port 1(vetheef523c) entered disabled state
default 11:41:55.848427-0400    com.docker.hyperkit [  494.606157] device vetheef523c left promiscuous mode
default 11:41:55.849209-0400    com.docker.hyperkit [  494.606875] docker0: port 1(vetheef523c) entered disabled state
default 11:41:55.904035-0400    com.docker.driver.amd64-linux   proxy << GET /containers/109ba7f699164a17aae50ef34d6f90a6aea86023ef7f270f8451f4b555d8f0aa/json (91.26475ms)

尝试
docker container ps-a
,它将显示所有容器。您可以使用
docker container rm
删除旧容器,然后创建新容器。

尝试
docker container ps-a
,它将显示所有容器。您可以使用docker container rm删除旧的,然后创建新的。

我终于开始工作了。我删除了~/docker/volumes/postgres并重新创建了它。集装箱马上启动了

我终于有办法了。我删除了~/docker/volumes/postgres并重新创建了它。集装箱马上启动了

容器不存在。没有容器存在。您可以从docker事件的输出中看到容器启动、死亡、网络断开连接以及容器被破坏。我刚刚添加了它,然后看到了您的问题。请确保$HOME/docker/volumes/postgres拥有正确的所有者,所有者应为999,否则postgresI将尝试您的建议,但我可以告诉您,当它起作用时,我刚刚创建了~/docker/volumes/postgres作为用户jboss,它启动得很好,并用人们通常看到的postgres数据目录填充了该目录。移除容器时,我还清空了文件夹中的所有内容(随后移除了所有卷,然后将Docker重置为出厂设置)。容器不存在。没有容器存在。您可以从docker事件的输出中看到容器启动、死亡、网络断开连接以及容器被破坏。我刚刚添加了它,然后看到了您的问题。请确保$HOME/docker/volumes/postgres拥有正确的所有者,所有者应为999,否则postgresI将尝试您的建议,但我可以告诉您,当它起作用时,我刚刚创建了~/docker/volumes/postgres作为用户jboss,它启动得很好,并用人们通常看到的postgres数据目录填充了该目录。当我移除容器时,我也清空了文件夹中的所有内容(随后移除了所有卷,然后将Docker重置为出厂设置)。仅供参考,您可能应该改用,而不是以这种方式处理内部内容。获取具有
docker volume ls
的列表。我已经使用您的方法删除了所有docker volume。它没有删除物理位置。这是我硬盘上的一个挂载点。关键是,一旦被Postgres映像写入,我就无法在同一装载点上成功启动另一个映像,直到我将其从硬盘中删除并重新创建。仅供参考,您可能应该改用,而不是以这种方式处理内部。获取具有
docker volume ls
的列表。我已经使用您的方法删除了所有docker volume。它没有删除物理位置。这是我硬盘上的一个挂载点。问题是,一旦被Postgres映像写入,我就无法在同一装载点上成功启动另一个映像,直到我将其从硬盘中删除并重新创建。
jboss@JBoss-iMac-Pro 12 % docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
7c37295bd5df        bridge              bridge              local
22776a78550b        host                host                local
47520ea94014        none                null                local
jboss@JBoss-iMac-Pro 12 %