你好,StackOverflowers。
我正在尝试安装 pgadmin4
使用 Docker
在 Ubuntu 18.04 LTS
但每次我创建一个容器时,它都会崩溃。
这是我使用的命令。
docker run -p 8082:80 --name pgadmin_server \
-e '[email protected]' \
-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位机器上运行Ubuntu 18.04 LTS。
谢谢你的帮助
当你在本地构建一个镜像时,默认情况下,它将为你的本地主机构建相同的架构。由于现在大多数x86系统都是64位系统(以至于很多发行版都放弃了对32位x86架构的支持),这意味着你找到的绝大多数镜像都只能在x86_64系统上运行。
在 "官方 "镜像中找到多架构支持是比较常见的。
Docker Hub上的大部分官方镜像都提供了多种架构。例如,busybox镜像支持amd64、arm32v5、arm32v6、arm32v7、arm64v8、i386、ppc64le和s390x。当在x86_64 amd64机器上运行此镜像时,x86_64变体将被拉取并运行。
(该引文来自以下链接)
虽然有 支持构建多架构图像这需要构建镜像的人进行明确的配置。
我不相信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",