首页 > 解决方案 > Docker 服务容器,错误:服务 'w3svc' 已停止

问题描述

我正在尝试在 Windows Server 2016 上使用“Docker swarm”创建多个容器,我的服务已创建并复制,但它不稳定,它运行时出现错误。

PS C:\Users\tmman\Desktop\stackdeploy> docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE                                           PORTS
xw6kqqu7o4ad        demo_db             replicated          1/1                 microsoft/mssql-server-windows-express:latest
kkrpxwiytax9        demo_web            replicated          1/1                 microsoft/iis:latest                            *:80->80/tcp

PS C:\Users\tmman\Desktop\stackdeploy> docker service ps demo_web demo_db
ID                  NAME                IMAGE                                           NODE                DESIRED STATE       CURRENT STATE            ERROR                              PORTS
1s4ybqny71sd        demo_web.1          microsoft/iis:latest                            DELEI4127           Running             Starting 2 seconds ago
uohf736ux1ne         \_ demo_web.1      microsoft/iis:latest                            DELEI4127           Shutdown            Failed 7 seconds ago     "task: non-zero exit (21479438…"
owpguwtbpdxc         \_ demo_web.1      microsoft/iis:latest                            DELEI4127           Shutdown            Failed 16 seconds ago    "starting container failed: co…"
dg54mihkflbx         \_ demo_web.1      microsoft/iis:latest                            DELEI4127           Shutdown            Failed 25 seconds ago    "task: non-zero exit (21475000…"
7enznbiqjfp5         \_ demo_web.1      microsoft/iis:latest                            DELEI4127           Shutdown            Failed 37 seconds ago    "starting container failed: co…"
o541pdex9s3p        demo_db.1           microsoft/mssql-server-windows-express:latest   DELEI4127           Running             Running 11 minutes ago

PS C:\Users\tmman\Desktop\stackdeploy> docker ps -a
CONTAINER ID        IMAGE                                           COMMAND                   CREATED             STATUS                               PORTS               NAMES
017afe0a6211        microsoft/iis:latest                            "C:\\ServiceMonitor.e…"   18 seconds ago      Up 10 seconds                        80/tcp              demo_web.1.1s4ybqny71sds3i9h47i59g4s
5889ac4ef8d2        microsoft/iis:latest                            "C:\\ServiceMonitor.e…"   27 seconds ago      Exited (2147943855) 19 seconds ago                       demo_web.1.uohf736ux1neaz5u0p1d73jx4
dce80549e789        microsoft/iis:latest                            "C:\\ServiceMonitor.e…"   37 seconds ago      Created                              80/tcp              demo_web.1.owpguwtbpdxc50em7a3rc8m05
92721722311c        microsoft/iis:latest                            "C:\\ServiceMonitor.e…"   48 seconds ago      Exited (2147500037) 38 seconds ago                       demo_web.1.dg54mihkflbxt2j0wd6tv8qlt
166d29256771        microsoft/iis:latest                            "C:\\ServiceMonitor.e…"   11 minutes ago      Created                              80/tcp              demo_web.1.7enznbiqjfp5hdvjbgvnj1q1v
fbc3deb1930e        microsoft/mssql-server-windows-express:latest   "powershell -Command…"    11 minutes ago      Up 11 minutes                                            demo_db.1.o541pdex9s3pmaaty8xzkezpx

Error:
PS C:\Users\tmman\Desktop\stackdeploy> docker service logs demo_web
demo_web.1.1vwqd9xgvfd3@DELEI4127    |
demo_web.1.1vwqd9xgvfd3@DELEI4127    |  Service 'w3svc' has been stopped
demo_web.1.1vwqd9xgvfd3@DELEI4127    |
demo_web.1.8vs509jzpwb9@DELEI4127    |
demo_web.1.8vs509jzpwb9@DELEI4127    |  Service 'w3svc' has been stopped
demo_web.1.8vs509jzpwb9@DELEI4127    |
demo_web.1.8vs509jzpwb9@DELEI4127    | Failed to update IIS configuration
demo_web.1.1vwqd9xgvfd3@DELEI4127    | Failed to update IIS configuration
demo_web.1.z7yhqf1wqqiu@DELEI4127    |
demo_web.1.z7yhqf1wqqiu@DELEI4127    |  Service 'w3svc' has been stopped
demo_web.1.z7yhqf1wqqiu@DELEI4127    |
demo_web.1.pt4du3jr20nj@DELEI4127    |
demo_web.1.pt4du3jr20nj@DELEI4127    |  Service 'w3svc' has been stopped
demo_web.1.pt4du3jr20nj@DELEI4127    |
demo_web.1.z7yhqf1wqqiu@DELEI4127    | Failed to update IIS configuration
demo_web.1.pt4du3jr20nj@DELEI4127    | Failed to update IIS configuration

PS C:\Users\tmman\Desktop\stackdeploy> docker info
Containers: 6
Running: 2
Paused: 0
Stopped: 4
Images: 3
Server Version: 18.09.2
Storage Driver: windowsfilter
 Windows:
Logging Driver: json-file
Plugins:
 Volume: local
 Network: ics l2bridge l2tunnel nat null overlay transparent
 Log: awslogs etwlogs fluentd gelf json-file local logentries splunk syslog
Swarm: active
 NodeID: 1oef3sisa3el3q46tz7aj78eu
 Is Manager: true
 ClusterID: k4l6x9b42bg7bfnf630g3g2h1
 Managers: 1
 Nodes: 1
 Default Address Pool: 10.0.0.0/8
 SubnetSize: 24
 Orchestration:
  Task History Retention Limit: 5
 Raft:
  Snapshot Interval: 10000
  Number of Old Snapshots to Retain: 0
  Heartbeat Tick: 1
  Election Tick: 10
 Dispatcher:
  Heartbeat Period: 5 seconds
 CA Configuration:
  Expiry Duration: 3 months
  Force Rotate: 0
 Autolock Managers: false
 Root Rotation In Progress: false
 Node Address: 10.49.2.50
 Manager Addresses:
  10.49.2.50:2377
Default Isolation: process
Kernel Version: 10.0 14393 (14393.2848.amd64fre.rs1_release.190305-1856)
Operating System: Windows Server 2016 Standard Version 1607 (OS Build 14393.2848)
OSType: windows
Architecture: x86_64
CPUs: 8
Total Memory: 7.999GiB
Name: DELEI4127
ID: 5BCA:25XO:U3TH:JYXD:BULV:MWXO:UWYF:APIZ:AVCF:R2QO:6KFL:A5SE
Docker Root Dir: C:\ProgramData\docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

我的 Dockerfile :

FROM microsoft/iis:nanoserver

WORKDIR /inetpub/wwwroot

RUN powershell -Command `

Add-WindowsFeature Web-Server; 
Invoke-WebRequest -UseBasicParsing -Uri "https://dotnetbinaries.blob.core.windows.net/servicemonitor/2.0.1.6/ServiceMonitor.exe" -OutFile "C:\ServiceMonitor.exe"

EXPOSE 80

ENTRYPOINT ["C:\\ServiceMonitor.exe", "w3svc"]

COPY index.html /index.html 

我的 YML. 文件:

version: "3"

services:

db:
    image: microsoft/mssql-server-windows-express
    networks: 
       - cpxnet

    deploy:

    environment:
       - SA_PASSWORD=Abcd1234
       - ACCEPT_EULA=Y

web:
    image: microsoft/iis:latest

    networks: 
       - cpxnet


    deploy:
        resources:
            limits:

                memory: 50M 
    ports:
     -  "80:80"

    depends_on:
        - db


networks: 
    cpxnet:

我从这个网站得到了一些解决方案:https ://github.com/Microsoft/aspnet-docker/issues/64但对我的错误没有帮助

预先感谢您的帮助!!注意!!!:我是初学者

标签: windowsdockeriis

解决方案


我遇到了类似的问题 n 有几乎相似的 dockerfile。
为了排除故障,我将入口点更改为连续 ping 到本地主机。这样我就可以登录到容器 n 检查 w3svc 的问题。

我在事件查看器中发现了奇怪的多个事件(需要在 powershell 中查看),w3svc 已成功启动。没有停止事件。但我得出的结论是我的服务有问题。

我进一步检查发现应用程序池处于“按需”状态而不是“始终运行”。我将 apppool 属性设置为始终在我的 dockerfile 中运行。将切换入口点发布为原始值“service monitor.exe w3svc”,它使我的容器稳定。注意 - 我没有使用服务监视器已设置为入口点的默认 iis 映像。


推荐阅读