小编Max*_* R.的帖子

重命名docker-compose项目而不删除卷

我想重命名一个docker-compose项目(即通过重命名目录或添加-p new_name到docker-compose).如果我这样做,我将删除所有旧容器以及所有旧容器.有没有办法保留卷并将它们附加到新的docker-compose容器?

docker-compose.yml

version: '3'

services:
  dashboard:
    build: custom_dashboard
    volumes:
      - dashboard:/var/lib/grafana
    ports:
      - 3000:3000
volumes:
  dashboard:
Run Code Online (Sandbox Code Playgroud)

项目名称(和目录名称)是web,我想将其更改为grafana.卷名称是web_dashboard和将来的grafana_dashboard.

我可以手动完成,但我有一个非常庞大的docker-compose(但模块化)文件,有大约30个应用程序.

docker docker-compose

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

使用 DockerNAT 配置 Hyper-V 机器,包括互联网访问

如何将 DockerNAT 虚拟交换机用于 Hyper-V 虚拟机,以便它可以与其他 docker 容器“对话”并像在 MobyLinux 虚拟机中一样启用互联网访问?

很长的故事:

我想通过 Hyper-V 在我的 Windows Server 主机上安装Univention。在我的主机上,一个 nginx docker 容器也作为代理运行。如果有人调用univention.domain.com它应该自动重定向到我的 hyper-v Univention VM。当我将 Hyper-V 机器的网络适配器设置为DockerNAT,然后给它 IP 地址10.0.75.100作为 DockerNAT 的网关地址和 MobyLinux10.0.75.1的 IP 地址时,这有效10.0.75.2。当我现在10.0.75.100从我的 nginx 容器ping 时,它可以工作。

但是由于 Univention 需要 Internet 连接来安装应用程序,我对这种配置不太满意,因为我在使用DockerNAT网络接口时无法连接到 Internet 。

然后另一方面,我可以从 nginx 容器(在 MobyLinux 的 hyper-v VM 中作为 linux 容器运行) fe 进行 ping 操作8.8.8.8。所以 Docker 创建的 MobyLinux 容器必须可以访问互联网,对吗?虽然它也使用了DockerNAT接口。但它设置为“内部”虚拟交换机,并且我的主 NIC …

hyper-v docker docker-for-windows

6
推荐指数
0
解决办法
1260
查看次数

.NET core 3.0 System.IO.Ports SerialPort 在 RPI 上始终使用 5-10% CPU

当我尝试从 RaspberryPi 上的 Linux 中的串行端口 (uart) 读取数据时,在循环中我总是获得 5-10% 的 CPU 负载。由于串行端口应该是阻塞的,所以这不应该使用那么多的CPU负载,还是我错了?

我尝试了两个代码:

简单的代码

var port = new SerialPort("/dev/ttyUSB0", 57600);
port.Open();
while (true)
{
    if (port.BytesToRead > 0)
    {
    while (port.BytesToRead > 0)
        Console.Write($"{port.ReadByte().ToString("X2")} ");
    Console.WriteLine("");
    }
    Thread.Sleep(100);
}
Run Code Online (Sandbox Code Playgroud)

高级代码

static int blockLimit = 100;
static void Main(string[] args)
{
    var port = new SerialPort("/dev/ttyUSB0", 57600);
    port.Open();
    byte[] buffer = new byte[blockLimit];
    Action kickoffRead = null;
    kickoffRead = delegate
    {
        port.BaseStream.BeginRead(buffer, 0, buffer.Length, delegate (IAsyncResult ar)
        {
        try
        {
            int actualLength …
Run Code Online (Sandbox Code Playgroud)

c# linux serial-port raspberry-pi .net-core

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

使用 is 关键字检查可空对象是否为空

我刚刚发现,可以使用is-keywordin C# 对可空结构进行空检查。我认为它看起来很干净并且很好理解,但它也有性能吗?口译员是否必须双重投射它或者这样可以吗?

    static void Main(string[] args)
    {
        DateTime? test = null;

        PrintDT(test);//wont print
        test = DateTime.Now;
        PrintDT(test);//will print
    }
    private static void PrintDT(DateTime? dt)
    {
        if (dt is DateTime a)
            Console.WriteLine(a);
    }
Run Code Online (Sandbox Code Playgroud)

.net c# .net-core

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