【问题标题】:Hosting Windows Guest Containers in Service Fabric在 Service Fabric 中托管 Windows 来宾容器
【发布时间】:2017-06-10 18:52:06
【问题描述】:

我无法将简单的容器部署到安装在 Windows 2016 Datacenter w/ Containers 上的开发集群上的单个节点上。包已部署,但分区状态始终为“构建中”。我在下面包含了应用程序和服务清单。

我可以远程进入机器并使用以下命令手动运行容器:

docker run --name nanoiis -d -it -p 80:80 nanoserver/iis.

当容器运行时,我可以从远程机器访问在其中运行的 IIS 实例。由于记录在案的 NAT 问题,我无法从主机使用 localhost 访问容器。

现在我需要让容器在 Service Fabric 中运行。我安装了 5.4.145.9494。我了解此版本的运行时中的容器支持处于预览状态,但这个简单的用例不应该工作吗?

应用程序清单

<?xml version="1.0" encoding="utf-8"?>
<ApplicationManifest ApplicationTypeName="ContainerSampleType"
                   ApplicationTypeVersion="1.0.0"
                     xmlns="http://schemas.microsoft.com/2011/01/fabric"
                     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Parameters>
    <Parameter Name="IISContainer_InstanceCount" DefaultValue="1" />
  </Parameters>
  <ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="IISContainerPkg" ServiceManifestVersion="1.0.0" />
    <Policies>      
      <ContainerHostPolicies CodePackageRef="Code">        
        <PortBinding ContainerPort="80" EndpointRef="IISContainerTypeEndpoint"/>        
      </ContainerHostPolicies>
    </Policies>
  </ServiceManifestImport>
  <DefaultServices>
    <Service Name="IISContainer">
      <StatelessService ServiceTypeName="IISContainerType" InstanceCount="[IISContainer_InstanceCount]">
        <SingletonPartition />
      </StatelessService>
    </Service>
  </DefaultServices>
</ApplicationManifest>

服务清单

<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="IISContainerPkg"
                 Version="1.0.0"
                 xmlns="http://schemas.microsoft.com/2011/01/fabric"
                 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ServiceTypes>
    <StatelessServiceType ServiceTypeName="IISContainerType" UseImplicitHost="true" />
  </ServiceTypes>
  <CodePackage Name="Code" Version="1.0.0">
    <EntryPoint>
      <ContainerHost>
        <ImageName>nanoserver/iis:latest</ImageName>        
      </ContainerHost>
    </EntryPoint>
  </CodePackage>
  <ConfigPackage Name="Config" Version="1.0.0" />
  <Resources>
    <Endpoints>
      <Endpoint Name="IISContainerTypeEndpoint" UriScheme="http" Protocol="http" Port="80"/>
    </Endpoints>
  </Resources>
</ServiceManifest>

【问题讨论】:

    标签: azure-service-fabric


    【解决方案1】:

    我认为您的问题来自默认 MS 映像未明确公开端口 80。ASF 确实需要此 (atm)

    只需像这样自己添加:

    FROM nanoserver/iis
    EXPOSE 80
    

    并将其推送到 docker hub 或您自己的注册表。

    阅读博文here 以获取在 ASF 上运行的简单 IIS 容器。 阅读帖子here 进行故障排除。

    【讨论】:

      猜你喜欢
      • 2017-01-28
      • 1970-01-01
      • 2017-03-26
      • 2016-05-29
      • 2020-01-05
      • 2018-01-31
      • 1970-01-01
      • 2019-08-16
      • 2017-03-26
      相关资源
      最近更新 更多