无法在 Ubuntu 18.04 LTS 上 运行 pgadmin4 docker
Unable to run pgadmin4 docker on Ubuntu 18.04 LTS
你好 Whosebugers,
我正在尝试在 Ubuntu 18.04 LTS
中使用 Docker
安装 pgadmin4
,但每次我创建容器时它都会崩溃。
这是我使用的命令:
docker run -p 8082:80 --name pgadmin_server \
-e 'PGADMIN_DEFAULT_EMAIL=user@domain.com' \
-e 'PGADMIN_DEFAULT_PASSWORD=password' \
dpage/pgadmin4
这是我得到的结果
standard_init_linux.go:211: exec user process caused "exec format error"
当我运行docker container ls -a
时,这就是我得到的。我的容器已关闭
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
034b89accaae dpage/pgadmin4 "/entrypoint.sh" 5 minutes ago Exited (1) 4 minutes ago pgadmin_server
1e660903663e postgres:9.2 "docker-entrypoint.s…" 48 minutes ago Up 48 minutes 0.0.0.0:5432->5432/tcp postgres_container
这是我使用的 docker 版本:
Docker version 19.03.6, build 369ce74a3c
顺便说一句,我在 32 位机器上 运行ning Ubuntu 18.04 LTS
感谢您的帮助
当您在本地构建映像时,默认情况下它将针对与本地主机相同的体系结构构建。由于现在大多数 x86 系统都是 64 位系统(以至于许多发行版已经放弃了对 32 位 x86 架构的支持),这意味着您找到的绝大多数图像只会 运行 在 x86_64 系统。
在 "official" 个图像中更常见到多架构支持:
Most of the official images on Docker Hub provide a variety of architectures. For example, the busybox image supports amd64, arm32v5, arm32v6, arm32v7, arm64v8, i386, ppc64le, and s390x. When running this image on an x86_64 / amd64 machine, the x86_64 variant will be pulled and run.
(该引用来自以下link)
虽然存在 support for building multi-architecture images,但需要构建映像的人员进行显式配置。
我认为 Docker 没有提供任何工具来方便地探索给定图像的支持架构。您可以使用 skopeo 工具来执行此操作,尽管该过程仍然有点不明显。要查看多架构图像的架构列表,我们需要使用 --raw
选项:
$ skopeo inspect --raw docker://busybox | python -mjson.tool | grep -i architecture
"architecture": "amd64",
"architecture": "arm",
"architecture": "arm",
"architecture": "arm",
"architecture": "arm64",
"architecture": "386",
"architecture": "mips64le",
"architecture": "ppc64le",
"architecture": "s390x",
对于单一架构图像,以上将不会产生任何结果;在这种情况下,删除 --raw
以查看架构:
$ skopeo inspect docker://dpage/pgadmin4 | python -mjson.tool | grep -i architecture
"Architecture": "amd64",
你好 Whosebugers,
我正在尝试在 Ubuntu 18.04 LTS
中使用 Docker
安装 pgadmin4
,但每次我创建容器时它都会崩溃。
这是我使用的命令:
docker run -p 8082:80 --name pgadmin_server \
-e 'PGADMIN_DEFAULT_EMAIL=user@domain.com' \
-e 'PGADMIN_DEFAULT_PASSWORD=password' \
dpage/pgadmin4
这是我得到的结果
standard_init_linux.go:211: exec user process caused "exec format error"
当我运行docker container ls -a
时,这就是我得到的。我的容器已关闭
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
034b89accaae dpage/pgadmin4 "/entrypoint.sh" 5 minutes ago Exited (1) 4 minutes ago pgadmin_server
1e660903663e postgres:9.2 "docker-entrypoint.s…" 48 minutes ago Up 48 minutes 0.0.0.0:5432->5432/tcp postgres_container
这是我使用的 docker 版本:
Docker version 19.03.6, build 369ce74a3c
顺便说一句,我在 32 位机器上 运行ning Ubuntu 18.04 LTS
感谢您的帮助
当您在本地构建映像时,默认情况下它将针对与本地主机相同的体系结构构建。由于现在大多数 x86 系统都是 64 位系统(以至于许多发行版已经放弃了对 32 位 x86 架构的支持),这意味着您找到的绝大多数图像只会 运行 在 x86_64 系统。
在 "official" 个图像中更常见到多架构支持:
Most of the official images on Docker Hub provide a variety of architectures. For example, the busybox image supports amd64, arm32v5, arm32v6, arm32v7, arm64v8, i386, ppc64le, and s390x. When running this image on an x86_64 / amd64 machine, the x86_64 variant will be pulled and run.
(该引用来自以下link)
虽然存在 support for building multi-architecture images,但需要构建映像的人员进行显式配置。
我认为 Docker 没有提供任何工具来方便地探索给定图像的支持架构。您可以使用 skopeo 工具来执行此操作,尽管该过程仍然有点不明显。要查看多架构图像的架构列表,我们需要使用 --raw
选项:
$ skopeo inspect --raw docker://busybox | python -mjson.tool | grep -i architecture
"architecture": "amd64",
"architecture": "arm",
"architecture": "arm",
"architecture": "arm",
"architecture": "arm64",
"architecture": "386",
"architecture": "mips64le",
"architecture": "ppc64le",
"architecture": "s390x",
对于单一架构图像,以上将不会产生任何结果;在这种情况下,删除 --raw
以查看架构:
$ skopeo inspect docker://dpage/pgadmin4 | python -mjson.tool | grep -i architecture
"Architecture": "amd64",