我已经使用我们的应用程序创建了映像,运行该映像后,我可以看到 docker 容器也已创建,当我尝试进入 docker 容器时,我收到以下错误,您可以在这里帮助我吗?
“”“”OCI运行时执行失败:执行失败:container_linux.go:349:启动容器进程导致“执行:”bash“:在$ PATH中找不到可执行文件”:未知“”“”
我尝试执行以下所有命令
docker run -it exec 962f5d99458c
docker run -it 962f5d99458c
docker exec -it 962f5d99458c /bin
docker exec -it 75f6cb44f9e1
docker run --rm -ti 962f5d99458c sh
docker run --rm -ti 962f5d99458c /bin
docker exec --rm -ti 962f5d99458c /bin
docker exec -ti 962f5d99458c /bin
docker exec -ti 962f5d99458c \bin
docker exec -it 75f6cb44f9e1 bash
Run Code Online (Sandbox Code Playgroud)
但运气不好......你能在这里帮助我吗?
我不是 docker 专家,我只是在习惯它。我想将主机上生成的 ssl 证书复制到我的 docker 容器中。我读到它应该能够处理volumes
docker-compose 文件中的参数,但启动我的服务器时它总是令人兴奋,因为它无法在工作目录中找到复制的文件。
文件夹结构
- repo
- backend
- api
- static
- ssl
- dockerfile
- frontend
- docker-compose.yml
Run Code Online (Sandbox Code Playgroud)
Dockerfile
FROM node:14-alpine
ENV NODE_ENV=production SERVER_PORT_HTTP=80 SERVER_PORT_HTTPS=443
WORKDIR /usr/src/app
RUN npm install
COPY . .
EXPOSE ${SERVER_PORT_HTTP} ${SERVER_PORT_HTTPS}
CMD [ "npm", "run", "start" ]
Run Code Online (Sandbox Code Playgroud)
Docker-Compose
version: "3"
services:
api:
build:
context: ./backend/api
ports:
- "80:80"
- "443:443"
volumes:
- /etc/letsencrypt/live/api.example.com:/static/ssl
restart: unless-stopped
Run Code Online (Sandbox Code Playgroud) 我试图理解与node_memory_used有关的container_memory_rss或container_memory_working_set_bytes ,即(node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes)
这就是我的意思
PROMQL 1:
sum(container_memory_rss) by (instance) / 1024 / 1024 / 1024
{instance="172.19.51.8:10250"} 7.537441253662109
Run Code Online (Sandbox Code Playgroud)
PROMQL 2:
sum(node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) by (instance) / 1024 / 1024 / 1024
{instance="172.19.51.8:9100"} 2.2688369750976562
Run Code Online (Sandbox Code Playgroud)
PROMQL 3:
sum(container_memory_working_set_bytes) by (instance) / 1024 / 1024 / 1024
{instance="172.19.51.8:10250"} 9.285114288330078
Run Code Online (Sandbox Code Playgroud)
PROMQL 4:
sum(node_memory_MemAvailable_bytes) by (instance) / 1024 / 1024 / 1024
{instance="172.19.51.8:9100"} 13.356605529785156
Run Code Online (Sandbox Code Playgroud)
所以如果一个 Pod 总是运行在一个 Node 上。我无法理解为什么container_memory_rss或 container_memory_working_set_bytes大于node_memory_used
即 PROMQL 1 和 PROMQL 3 的值远大于 …
我想在容器停止运行时自动重新启动容器(而不是运行图像)。
我看到的所有示例都提到了docker run
,但我只想重新启动以前创建的容器。
我尝试将以下内容添加到 yml 文件中的服务定义中,但它没有执行任何操作:
restart: always
Run Code Online (Sandbox Code Playgroud) 尝试过滤掉一些带有relabel_config
. 在目标上我有一个app.kubernetes.io/name
值为 的标签kube-state-metrics
。
当我设置时,relabel-configs
我意识到根据Prometheus 文档.
, 和是无效的。我收到错误消息,抱怨这些无效字符。除了向该服务添加新标签之外,这是否可以按照其设定的方式实现?大多数 Helm 图表都使用这种标签约定,因此为所有内容添加额外标签将需要大量工作,希望避免这种情况。/
relabel_configs:
- source_labels: [app.kubernetes.io/name]
action: keep
regex: kube-state-metrics
Run Code Online (Sandbox Code Playgroud) docker ×3
kubernetes ×2
prometheus ×2
cadvisor ×1
certbot ×1
containers ×1
exec ×1
image ×1
lets-encrypt ×1