标签: linux-containers

如何在正在运行的docker容器中动态编辑文件

背景

我已经构建了一个npm服务器(sinopia)docker镜像(https://github.com/feuyeux/docker-atue/blob/master/docker-images/feuyeux_sinopia.md),并且在CMD行中,它将运行启动每次生成容器时都会生成.sh.

CMD ["/opt/sinopia/start.sh"]
Run Code Online (Sandbox Code Playgroud)

这个shell将动态创建一个yaml文件.

sed -e 's/\#listen\: localhost/listen\: 0.0.0.0/' -e 's/allow_publish\: admin/allow_publish\: all/' /tmp/config.yaml > /opt/sinopia/config.yaml
Run Code Online (Sandbox Code Playgroud)

我希望我可以在容器运行时编辑这个config.yaml,因为我希望内容应该按需更改.

在此输入图像描述 看快照照片

如上所示,第一行运行一个sinopia容器,在这个容器中,有/opt/sinopia/config.yaml.但我不知道如何获取此运行容器并编辑和检查此文件.如果我按照sinopia-ls的方式行,那么就有一个新的容器运行而不是之前运行的容器.

多谢你们!

答案(详情见下文我接受的内容)

sudo nsenter --target $PID --mount --uts --ipc --net --pid

root@58075317e47d:/# ls /opt/sinopia/
config.yaml  config_gen.js  start.sh  storage
root@58075317e47d:/# cat /opt/sinopia/config.yaml
Run Code Online (Sandbox Code Playgroud)

docker nsenter linux-containers

3
推荐指数
1
解决办法
6567
查看次数

是否可以私下使用Google Containers而不是云端?

我正在研究:

我们的目标是在我们自己的物理盒上使用这些2的东西,在企业中用于Dev/Prod.但是,我已经读过谷歌重新实现了LXC(Linux容器)并使用他们自己的lmctfy.

是否可以在没有云空间的情况下在我的Linux机器上使用Google Containers? 非常感谢您的体验.

lxc docker kubernetes linux-containers google-kubernetes-engine

2
推荐指数
1
解决办法
209
查看次数

Docker + Node.js + Windows

我想要的是: dockerize一个Node.js Web应用程序(我在Windows上)

Windows容器

docker-compose up 让我这个错误:

Service 'webapp' failed to build: no matching manifest for windows/amd64 in the manifest list entries
Run Code Online (Sandbox Code Playgroud)

据我了解,这是因为Windows没有Node.js映像,而解决方法是切换到Linux容器。

内存不足

当我尝试切换到linux容器时,Docker告诉我我没有足够的内存。通过设置更改分配的内存量不会解决该问题。

编辑:文件

docker-compose

version: '3'

services:
  webapp:
    build: ./Front
    volumes:
      - ./Front:./dockerized
    ports:
     - 5001:8080
Run Code Online (Sandbox Code Playgroud)

Dockerfile

FROM node:alpine

RUN mkdir -p ../dockerized

WORKDIR ../dockerized

COPY package*.json ../dockerized

RUN npm install

COPY . ../dockerized

EXPOSE 8080
CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)

windows node.js docker linux-containers

2
推荐指数
2
解决办法
6171
查看次数

npgsql.EntityFrameworkCore.PostgreSQL - 使用 json 参数执行函数不起作用

数据库:Postgresql

ORM:带有 Npgsql.EntityFrameworkCore.PostgreSQL 的实体框架核心

尝试调用以下函数将产品列表作为 json 传递

dbContext.product.FromSqlRaw("SELECT pa.usp_set_product({0})", productjson).ToList();
Run Code Online (Sandbox Code Playgroud)

返回错误为:“42883:函数 pa.usp_set_product(text) 不存在”

然后尝试下面

dbContext.product.FromSqlRaw(@"SELECT pa.usp_set_product('" + productjson+ "')").ToList();
Run Code Online (Sandbox Code Playgroud)

返回错误:“输入字符串的格式不正确”

然后尝试下面效果很好

 using (var cmd = new NpgsqlCommand(@"SELECT pa.usp_set_product(@productjson)", conn))
   {
    cmd.Parameters.Add(new NpgsqlParameter("productjson", NpgsqlDbType.Json) { Value = productjson});
    cmd.ExecuteNonQuery();
   }
Run Code Online (Sandbox Code Playgroud)

任何想法,请-

  1. 为什么带有 JSON 参数的 FromSqlRaw 不起作用
  2. 使用 NpgsqlCommand 是否有任何缺点 - 它是否支持 Linux 容器(docker)

谢谢,

@保罗

c# npgsql docker entity-framework-core linux-containers

1
推荐指数
1
解决办法
5165
查看次数