docker run 报错

docker run 报错

macos系统,mycat结构为:

https://img1.sycdn.imooc.com/climg/8d1f2a6909ad5ba807220138.jpg

server.xml和schema.xml都按照老师说的修改,

按照老师步骤操作的,我看~/mycat/bin和/opt/mycat/bin下面都没有startup.sh,只有

startup_nowrap.sh

请问docker run的时候报错这个怎么解决呢

https://img1.sycdn.imooc.com/climg/ff7dfa6909ad5c9417100322.jpg



正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
CrazyCodeGirl 2026-03-17 11:40:22

你好同学,从报错信息可以看出:Docker 容器内的 /opt/mycat/bin/ 目录下不存在 startup.sh,但容器启动命令默认要执行这个文件,所以启动失败。而你本地和容器内实际只有 startup_nowrap.sh,这是 MyCat 新版本的启动脚本命名变化。给你推荐以下解决方案:

方案一:修改容器启动命令

在 docker run 命令中,显式指定启动脚本为 startup_nowrap.sh,覆盖镜像默认的启动命令:

docker run -it -d --name mycat -p 8066:8066 -p 9066:9066 \
--net mynet --ip 172.18.0.19 -m 2048m \
-v /Users/yun/mycat/conf:/opt/mycat/conf \
-v /Users/yun/mycat/logs:/opt/mycat/logs \
-e TZ=Asia/Shanghai --privileged=true \
mycat:1.6.7.4 \

/opt/mycat/bin/startup_nowrap.sh

关键改动点是在镜像名 mycat:1.6.7.4 后面追加启动脚本路径,告诉容器要执行 startup_nowrap.sh 而不是不存在的startup.sh。

方案二:创建软链接(兼容旧脚本名)

进入容器内部,给 startup_nowrap.sh 创建一个名为 startup.sh 的软链接,让镜像默认命令能找到文件。

先以交互模式启动容器(不执行默认启动命令):

docker run -it --name mycat -p 8066:8066 -p 9066:9066 \
--net mynet --ip 172.18.0.19 -m 2048m \
-v /Users/yun/mycat/conf:/opt/mycat/conf \
-v /Users/yun/mycat/logs:/opt/mycat/logs \
-e TZ=Asia/Shanghai --privileged=true \
mycat:1.6.7.4 \
/bin/bash

然后在容器内执行软链接创建,具体执行命令如下:

ln -s /opt/mycat/bin/startup_nowrap.sh /opt/mycat/bin/startup.sh

然后,退出容器后重新启动:

docker start mycat

需要注意,MyCat 1.6+ 版本将 startup.sh 重命名为 startup_nowrap.sh,避免使用 nohup 后台运行,更适合容器化部署(容器需要前台进程才能存活)。然后,启动后执行 docker logs mycat看看问题是否已经解决。关于Mac 注意事项:确保本地挂载的 conf 和 logs 目录权限正确,避免容器内无法读写。



cloudonthesun 提问者 2026-03-08 19:50:59

删除本地镜像后重新执行报错:

yun@yundeMacBook-Pro mycat % docker run -it -d --name mycat -p 8066:8066 -p 9066:9066 \

--net mynet --ip 172.18.0.19 -m 2048m \

-v /Users/yun/mycat/conf:/opt/mycat/conf \

-v /Users/yun/mycat/logs:/opt/mycat/logs \

-e TZ=Asia/Shanghai --privileged=true \

mycat:1.6.7.4

Unable to find image 'mycat:1.6.7.4' locally


docker: Error response from daemon: unknown: failed to resolve reference "docker.io/library/mycat:1.6.7.4": unexpected status from HEAD request to https://docker.1panel.live/v2/library/mycat/manifests/1.6.7.4?ns=docker.io: 403 Forbidden


Run 'docker run --help' for more information

我配置的镜像源是:

{

  "builder": {

    "gc": {

      "defaultKeepStorage": "20GB",

      "enabled": true

    }

  },

  "experimental": false,

  "registry-mirrors": [

    "https://registry.cn-hangzhou.aliyuncs.com",

    "https://docker.mirrors.ustc.edu.cn",

    "https://dockerproxy.1panel.live",

    "https://docker.1panel.live",

    "https://docker.1panelproxy.com",

    "https://proxy.1panel.live",

    "https://docker.1panel.top",

    "https://docker.1ms.run",

    "https://mirror.azure.cn",

    "https://hub.rat.dev",

    "https://docker.itelyou.cf",

    "https://docker.ywsj.tk",

    "http://hub-mirror.c.163.com",

    "https://docker.xuanyuan.me",

    "http://hub-mirror.c.163.com",

    "https://hub.littlediary.cn",

    "https://docker.kejilion.pro",

    "https://lispy.org",

    "https://docker.xiaogenban1993.com",

    "https://docker.xuanyuan.me",

    "https://docker.mybacc.com",

    "https://docker-0.unsee.tech",

    "https://dockerpull.cn"

  ]

}


  • 提问者 cloudonthesun #1

    最新报错换成这个了

    2026-03-08 19:51:24
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师