docker问题处理记录
1.在启动lobehub/lobe-chat:latest容器时报错:
# node[1]: std::unique_ptr<long unsigned int> node::WorkerThreadsTaskRunner::DelayedTaskScheduler::Start() at ../src/node_platform.cc:68
# Assertion failed: (0) == (uv_thread_create(t.get(), start_thread, this))
----- Native stack trace -----
1: 0xcbc127 node::Assert(node::AssertionInfo const&) [node]
2: 0xd3b96e node::WorkerThreadsTaskRunner::WorkerThreadsTaskRunner(int) [node]
3: 0xd3ba4c node::NodePlatform::NodePlatform(int, v8::TracingController*, v8::PageAllocator*) [node]
4: 0xc702d6 [node]
5: 0xc717d4 node::Start(int, char**) [node]
6: 0x7fa5c4b0024a [/lib/x86_64-linux-gnu/libc.so.6]
7: 0x7fa5c4b00305 __libc_start_main [/lib/x86_64-linux-gnu/libc.so.6]
8: 0xbc630e _start [node]
经查询是docker容器受到资源的限制,无法创建线程。需要在docker run时添加--security-opt seccomp=unconfined参数,允许容器执行全部的系统调用
docker run -d --name lobe-chat -p 10084:3210 --security-opt seccomp=unconfined -e ACCESS_CODE=lobe66xxx lobehub/lobe-chat:latest
docker compose写法如下:
security_opt:
- seccomp=unconfined
2.在宿主机中根据pid查找容器
docker ps --no-trunc
CONTAINER ID IMAGE COMMAND
bc5f84d815a84df2a218e1e50e5a46d49e1fdc5bffe5445eb04a4653cb8a40da lutixiaya/nwebdav:latest "/usr/local/nginx/sbin/nginx -g 'daemon off;'"
根据COMAND列查找进程
ps aux|grep nginx
root 2945745 0.0 0.0 3700 108 ? Ss 2023 0:00 nginx: master process /usr/local/nginx/sbin/nginx -g daemon off;
查看对应pid的cgroup文件即可根据id查找到容器
cat /proc/2945745/cgroup
11:hugetlb:/docker/bc5f84d815a84df2a218e1e50e5a46d49e1fdc5bffe5445eb04a4653cb8a40da
10:perf_event:/docker/bc5f84d815a84df2a218e1e50e5a46d49e1fdc5bffe5445eb04a4653cb8a40da
9:blkio:/docker/bc5f84d815a84df2a218e1e50e5a46d49e1fdc5bffe5445eb04a4653cb8a40da
8:pids:/docker/bc5f84d815a84df2a218e1e50e5a46d49e1fdc5bffe5445eb04a4653cb8a40da
7:cpuacct,cpu:/docker/bc5f84d815a84df2a218e1e50e5a46d49e1fdc5bffe5445eb04a4653cb8a40da
6:net_prio,net_cls:/docker/bc5f84d815a84df2a218e1e50e5a46d49e1fdc5bffe5445eb04a4653cb8a40da
5:freezer:/docker/bc5f84d815a84df2a218e1e50e5a46d49e1fdc5bffe5445eb04a4653cb8a40da
4:devices:/docker/bc5f84d815a84df2a218e1e50e5a46d49e1fdc5bffe5445eb04a4653cb8a40da
3:cpuset:/docker/bc5f84d815a84df2a218e1e50e5a46d49e1fdc5bffe5445eb04a4653cb8a40da
2:memory:/docker/bc5f84d815a84df2a218e1e50e5a46d49e1fdc5bffe5445eb04a4653cb8a40da
1:name=systemd:/docker/bc5f84d815a84df2a218e1e50e5a46d49e1fdc5bffe5445eb04a4653cb8a40da
3.更新容器开机自启动
docker container inspect --format='{{.HostConfig.RestartPolicy.Name}}' 容器id
如果该容器已经设置为开机自启,输出 always。如果没有设置,则会输出 no。
docker update --restart=always 容器id
本文作者:物是人非a
本文链接:https://www.cnblogs.com/zops/p/18220115
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步