Docker 容器在 `docker 启动时立即退出
Docker container exits immediately on `docker start`
我正在尝试用 docker start my_container
启动一个 docker 容器,但它立即退出。它在某些机器上运行良好,但在其他机器上运行良好。这是我的过程:
- 通过
docker pull <repo>:latest
拉取镜像
- 通过
docker create --name my_container <repo>:latest
创建容器
- 通过
docker start my_container
启动容器
当我通过 docker ps -a
检查 运行ning docker 进程时,我看到 my_container
的状态是 Exited (1) 2 seconds ago
。
当我运行docker logs my_container
时,唯一的输出是:
standard_init_linux.go:190: exec user process caused "exec format error"
在我的案例中,根本问题是架构不匹配。
我的 Dockerfile
使用的是 amd64
基础图像。我从这个 docker 文件构建了一个图像并将其推送到远程存储库。然后我将图像拉到具有 arm32v7
架构的设备上,从图像创建一个容器,并尝试 运行 容器。
从下面的基础图像构建的 docker 图像将适用于 amd64
- 它不适用于 arm32v7
.
FROM amd64/ros:kinetic-ros-core-xenial
从下面的基础图像构建的 docker 图像将适用于 arm32v7
- 它不适用于 amd64
.
FROM arm32v7/ros:kinetic-ros-core-xenial
从 Dockerfile
构建的 docker 映像,其基本映像定义如下,将默认为您当前机器的架构。
FROM ros:kinetic-ros-core-xenial
我正在尝试用 docker start my_container
启动一个 docker 容器,但它立即退出。它在某些机器上运行良好,但在其他机器上运行良好。这是我的过程:
- 通过
docker pull <repo>:latest
拉取镜像
- 通过
docker create --name my_container <repo>:latest
创建容器
- 通过
docker start my_container
启动容器
当我通过 docker ps -a
检查 运行ning docker 进程时,我看到 my_container
的状态是 Exited (1) 2 seconds ago
。
当我运行docker logs my_container
时,唯一的输出是:
standard_init_linux.go:190: exec user process caused "exec format error"
在我的案例中,根本问题是架构不匹配。
我的 Dockerfile
使用的是 amd64
基础图像。我从这个 docker 文件构建了一个图像并将其推送到远程存储库。然后我将图像拉到具有 arm32v7
架构的设备上,从图像创建一个容器,并尝试 运行 容器。
从下面的基础图像构建的 docker 图像将适用于 amd64
- 它不适用于 arm32v7
.
FROM amd64/ros:kinetic-ros-core-xenial
从下面的基础图像构建的 docker 图像将适用于 arm32v7
- 它不适用于 amd64
.
FROM arm32v7/ros:kinetic-ros-core-xenial
从 Dockerfile
构建的 docker 映像,其基本映像定义如下,将默认为您当前机器的架构。
FROM ros:kinetic-ros-core-xenial