小编Pie*_*erV的帖子

如何使用 Compose 创建具有用户定义的 IP 和 MAC 地址的 Docker macvlan

我有一个使用 MAC 地址执行硬件许可证的 Docker 项目。我无法更改此设置,ISV 使用包含 MAC 地址的硬件指纹。

我正在尝试创建一个 macvlan 网络,它将使用物理适配器并从我的网络 DHCP 服务器获取 IP 地址,或者我将手动分配静态 IP 地址。我必须能够手动设置 MAC 地址,这样它就不会动态更改并使我的许可证密钥失效。

根据 Docker 文档,该mac_address设置已被弃用,至少在 v3 模式中是这样,但在 v2 模式中似乎受到尊重。

我有一个使用普通 LSIO Nginx 作为测试来构建的配置,但无法运行并出现错误,指出无法分配 MAC 地址。

version: "2.1"

services:
  nginx:
    image: linuxserver/nginx
    container_name: nginx_macvlan
    environment:
      - TZ=Americas/Los_Angeles
    volumes:
      - .mount:/config
    ports:
      - 80:80
      - 443:443
    restart: unless-stopped
    mac_address: b7-48-d5-a6-d1-99
    networks: 
      nginx_vlan:
        ipv4_address: 192.168.1.10

networks:
  nginx_vlan:
    driver: macvlan
    ipam:
      driver: default
      config:
        - subnet: 192.168.1.0/24
Run Code Online (Sandbox Code Playgroud)
PS C:\Users\piete\source\TestMacVlan> cd "c:\Users\piete\source\TestMacVlan"
PS C:\Users\piete\source\TestMacVlan> docker-compose -f …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose macvlan

8
推荐指数
1
解决办法
4万
查看次数

如何从 Serilog.ILogger 创建 MELA.ILogger 以在 .NET 标准库中使用

我正在将 .NET Standard 实用程序库从控制台日志记录转换为ILogger日志记录。

该库由静态实用程序类组成,我公开了一个ILogger由用户设置的静态属性,以指向他们想要使用的任何日志系统。

我希望我的 .NET Core 3.1 和 .NET 5 控制台应用程序使用 Serilog 进行日志记录,并将库分配ILogger给 Serilog,并具有 Serilog 附带的所有优点。我没有在实用程序库中使用 DI,因为它是静态方法,而不是“服务”类。

如何手动(不使用 DI)Microsoft.Extensions.Logging.ILogger从 aSerilog.ILoggerSerilog.Extensions.Logging.SerilogLoggerFactory.

与示例代码相比,有什么更简单的方法的建议吗?

// How to create a "Microsoft.Extensions.Logging.ILogger" from a "Serilog.ILogger"?
Microsoft.Extensions.Logging.ILogger logger = Microsoft.Extensions.Logging.Abstractions.NullLogger.Instance;

// https://github.com/serilog/serilog-extensions-logging/blob/dev/samples/Sample/Program.cs
LoggerProviderCollection providerCollection = new LoggerProviderCollection();

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Debug()
    .Enrich.FromLogContext()
    .WriteTo.Console()
    .WriteTo.Providers(providerCollection)
    .CreateLogger();

ServiceCollection serviceCollection = new ServiceCollection();
serviceCollection.AddSingleton(providerCollection);
serviceCollection.AddSingleton<ILoggerFactory>(sc =>
{
    LoggerProviderCollection loggerProviderCollection = sc.GetService<LoggerProviderCollection>();
    SerilogLoggerFactory serilogLoggerFactory = …
Run Code Online (Sandbox Code Playgroud)

c# serilog

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

标签 统计

c# ×1

docker ×1

docker-compose ×1

macvlan ×1

serilog ×1