你好StackOverflowers
我正在尝试使用pgadmin4
中的Docker
安装Ubuntu 18.04 LTS
,但是每次创建容器时,它都会崩溃。
这是我使用的命令:
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位计算机上运行Ubuntu 18.04 LTS
谢谢您的帮助
答案 0 :(得分:1)
在本地生成映像时,默认情况下将使用与本地主机相同的体系结构来生成映像。由于当今大多数x86系统都是64位系统(以至于许多发行版都放弃了对32位x86体系结构的支持),这意味着您发现的绝大多数映像只能在x86_64系统上运行。
在“官方”图像中找到多体系结构支持更为常见:
Docker Hub上的大多数官方映像都提供了多种架构。例如,busybox映像支持amd64,arm32v5,arm32v6,arm32v7,arm64v8,i386,ppc64le和s390x。在x86_64 / amd64计算机上运行此映像时,x86_64变体将被拉出并运行。
(该引证来自以下链接)
尽管有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",