如何使用带有特定 cmd 的 kubectl cmd 运行 docker 镜像

问题描述

我曾经使用流动的 docker run cmd 运行线模拟图像:

  public static void Main(string[] args)
    {
        var configuration = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
        
        Log.Logger = new LoggerConfiguration().Enrich.
            FromLogContext()               
        .CreateLogger() ;

        Log.information("Application starting up");   
        CreateHostBuilder(args).Build().Run();
    }


         public static IHostBuilder CreateHostBuilder(string[] args) =>
      Host.CreateDefaultBuilder(args)
          ****//on removing this i'm able to launch the browser in docker
          //as soon as I add UseSerilog() docker stops launching the browser
            .UseSerilog((hosting,logerconfig) =>
              logerconfig.ReadFrom.Configuration(hosting.Configuration))****
          .ConfigureWebHostDefaults(webBuilder =>
          {
              webBuilder.UseStartup<Startup>()
              .ConfigureKestrel(serverOptions =>
             {
                 serverOptions.AddServerHeader = false;
             });

          }
        );

现在我尝试使用kubectl run cmd在Kubernetes中运行它,下面一个运行成功

docker run -it -p 8787:8787 rodolpheche/wiremock --port 8787 --verbose

但我无法使用自定义 cmd“--port 8787 --verbose”运行它,我也尝试了以下选项,但无法使用这些特定选项运行 wiremock 容器“--port 8787 --详细"

kubectl run wiremock --image=rodolpheche/wiremock

有没有办法在 Kubernetes 的 8787 端口上使用详细选项运行它?

解决方法

kubectl run wmock --image rodolpheche/wiremock --port 8787 -- --port 8787 --verbose

应该可以解决问题,这将创建一个带有在端口 8787 上运行的带有详细标志的wiremock 的单个 Pod:

k exec -it wmock -- /bin/bash
root@wmock:/home/wiremock#
...
root@wmock:/home/wiremock# ps aux
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.4  1.9 3370684 78964 ?       Ssl  18:37   0:02 java -cp /var/wiremock/lib/*:/var/wiremock/extensions/* com.github.tomakehurst.wiremock.standalone.WireMockServerRunner --port 8787 --verbose