解决docker 运行脚本报错

具体内容如下:

问题背景

运行如下docker命令

docker run -itd \
  -p 18801:8801  \
  -v /home/app/data:/home/app/data \
  -v /home/app/java/jdk-17.0.15-full:/usr/local/java/jdk-17.0.15-full \
  -v /home/app/software/testCenterServer/Release:/home/app/software/testCenterServer/Release \
  -e JAVA_HOME=/usr/local/java/jdk-17.0.15-full   \
  -e PATH=$PATH:$JAVA_HOME/bin   \
  -e LANG=zh_CN.utf8   \
  -e TZ=Asia/Shanghai   \
--restart=always \
  --name test-center-server \
  --memory 32g \
  --cpus 8 \
ubuntu:24.10 \
/home/app/software/testCenterServer/Release/start.sh

报错如下:

docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/home/app/software/testCenterServer/Release/start.sh": stat /home/app/software/testCenterServer/Release/start.sh: no such file or directory: unknown.

解决办法

1️⃣先去查看docker版本是否有runc,使用docker version查看即可!

root@ubuntu:/# docker version
Client: Docker Engine - Community
 Version:           26.1.1
 API version:       1.45
 Go version:        go1.21.9
 Git commit:        4cf5afa
 Built:             Tue Apr 30 11:48:20 2024
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          26.1.1
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.9
  Git commit:       ac2de55
  Built:            Tue Apr 30 11:48:20 2024
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.31
  GitCommit:        e377cd56a71523140ca6ae87e30244719194a521
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

若是没有则进行安装,命令如下:

sudo snap install libseccomp
# 或者
sudo apt-get update
sudo apt-get install libseccomp-dev

2️⃣检查脚本和运行命令

  1. 验证脚本是否存在
    在宿主机上运行以下命令确认脚本是否存在:
    ls -l /home/app/software/testCenterServer/Release/start.sh
    如果文件不存在,请重新创建或复制脚本。

  2. 检查脚本权限
    确保脚本具有可执行权限:
    chmod +x /home/app/software/testCenterServer/Release/start.sh

  3. 修改运行方法
    这里使用了 /bin/bash -c 来执行脚本,确保脚本在容器中正确运行。
    在Linux或Unix系统中,运行.sh文件通常有以下几种方式:
    使用sh命令: sh start.sh 这种方式需要你处于Shell脚本所在的文件夹中。
    使用bash命令: bash start.sh 同样,这要求你在Shell脚本所在的目录下。
    直接执行脚本文件: ./start.sh 在这种情况下,你需要确保脚本文件具有执行权限。如果没有,可以使用chmod命令添加执行权限: chmod +x helloworld.sh
    使用脚本的绝对路径: /home/app/start.sh 如果脚本文件是新创建的,并且使用./或绝对路径无法执行,很可能是因为权限不足。此时,使用chmod命令授予权限后,就可以正常运行了。

  4. 修改运行命令
    具体如下:

docker run -itd \
  -p 18801:8801  \
  -v /home/app/data:/home/app/data \
  -v /home/app/java/jdk-17.0.15-full:/usr/local/java/jdk-17.0.15-full \
  -v /home/app/software/testCenterServer/Release:/home/app/software/testCenterServer/Release \
  -e JAVA_HOME=/usr/local/java/jdk-17.0.15-full   \
  -e PATH=$PATH:$JAVA_HOME/bin   \
  -e LANG=zh_CN.utf8   \
  -e TZ=Asia/Shanghai   \
--restart=always \
  --name test-center-server \
  --memory 32g \
  --cpus 8 \
ubuntu:24.10 \
/bin/bash -c "/home/app/software/testCenterServer/Release/start.sh"

至此就可以正常运行这个镜像服务了!

OK♥

每天进步一点点!

首夏山中行吟
祝允明〔明代〕

梅子青,梅子黄,菜肥麦熟养蚕忙。
山僧过岭看茶老,村女当垆煮酒香。

-----------------------------------------
**相关解释**
译文
梅子熟了,从青色变成了黄色,地里的菜和麦子也都成熟了,又到了忙着养蚕缫丝的时节。
山里的僧人翻过山岭去看茶叶生长的情况,村里的姑娘站在酒垆边煮酒,酒香四溢。

注释
当垆:对着酒垆;在酒垆前。

**相关赏析**
  祝枝山(字允明)的《首夏山中行吟》所写苏州西郊一带村女当垆煮酒的景象,让人读起来像吴语一般,轻快闲谈,很具姑苏特色。他的“有花有酒有吟咏,便是书生富贵时”,表达了那份满足,那份陶醉,一切功名利禄、人世烦恼,在诗酒风流前,烟消云散。这首酒诗反映了诗人人性的自由复归的愿望,重新发现自我,找到人生真正的归宿。

posted @ 2025-07-03 19:01  一朝综文,千年凝锦  阅读(80)  评论(0)    收藏  举报