docker容器启动报错

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: docker容器启动报错解决

启动容器报错:

standard_init_linux.go:178: exec user process caused "no such file or directory"
  • 报错背景
    我需要启动一个golang项目的容器,然后在我的centos7环境下将golang源码build成了一个可执行文件,写了一个Dockerfile,生成了一个容器。但是容器报错,以下是我的dockerdile
FROM alpine
ADD server /usr/bin/
WORKDIR /data
CMD ["server"]

生成一个镜像没问题,生成容器的时候报了上面的错误
后来查到是因为系统的问题,我在centos下build的项目可执行文件,但是在Dockerfile里面,我用的是alpine镜像,这个镜像时ubuntu系统的,所以导致报了上面的错误

  • 解决方法:
    解决方法就是让源码在build成一个可执行文件和执行这个可执行文件时,都使用同样的系统,以下是两种解决方法:

    方法一:如果你已经在centos环境build了可执行文件,那么你的Dockerfile应该这样写:

    FROM centos:7
    ADD server /usr/bin/
    WORKDIR /data
    CMD ["server"]
    

    即在可执行文件执行的环境也使用centos的环境

方法二:我使用一个ubuntu的镜像来将源码build成一个可执行文件,同时也在ubuntu中执行这个可执行文件
以下是Dockerfile

FROM golang:1.11-alpine

ENV SERVER=/go/src/git.phjr.com/server

COPY . $server/

RUN cd /go/src/git.phjr.com/server \
&& go build

FROM alpine

ENV SACC=/go/src/git.phjr.com/server
COPY --from=0  $SACC/server /usr/bin
WORKDIR /data

CMD ["server"]

可以通过以上Dockerfile看到,我在将源码build为一个可执行文件时,使用的是golang:1.11-alpine,此镜像中带有需要的golang环境,同时也是一个ubuntu镜像,刚好和我执行环境是一样的系统

推荐使用第二种方法,这种方法可以将源码一键build成一个镜像,方便快捷,同时,alpine镜像体积非常小,性能当然会更好,其次就是docker的底层存储使用的是ubuntu系统,所以,在构建docker镜像时,最好采用ubuntu系统

相关文章
|
2天前
|
前端开发 应用服务中间件 nginx
Docker consul的容器服务更新与发现
Docker consul的容器服务更新与发现
|
2天前
|
Docker 容器
docker: 如何不新建容器 修改运行容器的端口
docker: 如何不新建容器 修改运行容器的端口
|
2天前
|
数据管理 Linux Docker
docker 数据管理 与容器互联
docker 数据管理 与容器互联
|
3天前
|
Linux Docker 容器
蓝易云 - 【Linux】如何在linux系统重启或启动时执行命令或脚本(也支持docker容器内部)
以上就是在Linux系统和Docker容器中设置启动时运行命令或脚本的方法。希望对你有所帮助。
16 0
|
4天前
|
Docker 容器
mac构建Docker镜像报错failed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpec
mac构建Docker镜像报错failed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpec
5 0
|
4天前
|
大数据 Linux Docker
mac docker 宿主机和容器间网络打通
mac docker 宿主机和容器间网络打通
6 0
|
6天前
|
监控 安全 云计算
云端防御战线:云计算环境下的网络安全策略构建高效稳定的Docker容器监控体系
【5月更文挑战第27天】 在数字化时代的浪潮中,云计算已成为企业与个人存储和处理数据的重要平台。然而,随着云服务使用率的飙升,网络威胁也愈发狡猾且复杂。本文将深入探讨在云计算环境中维护网络安全的挑战及策略,重点分析信息安全的关键组成部分,并提出多层次防御模型以增强云环境的数据保护能力。通过剖析最新的安全技术与实践,我们旨在为读者提供一套全面的网络安全解决方案蓝图。
|
6天前
|
Java 数据安全/隐私保护 Docker
Docker Desktop 启动报错 Unexpected WSL error 问题解决
Docker Desktop 启动报错 Unexpected WSL error 问题解决
|
6天前
|
Docker 容器
【开发问题记录】启动某个服务时请求失败(docker-componse创建容器时IP参数不正确)
【开发问题记录】启动某个服务时请求失败(docker-componse创建容器时IP参数不正确)
9 1
|
13天前
|
Prometheus 监控 Cloud Native
构建高效稳定的Docker容器监控体系
【5月更文挑战第20天】 在微服务架构日益普及的今天,Docker作为其重要的实现技术之一,承载着大量应用的运行。然而,随之而来的是对于容器健康状态、资源使用情况以及性能指标的监控需求急剧增加。本文旨在探讨构建一个高效且稳定的Docker容器监控体系,不仅涵盖了监控工具的选择与配置,还详细阐述了监控数据的分析与处理流程。通过精心设计的监控策略和实时响应机制,我们能够确保系统的稳定性,并及时发现及处理潜在的问题。