Docker SQL绑定:试图以访问权限禁止的方式访问插座



在docker中为sql-server创建容器时(带管理权(:

"…守护程序的错误响应:驱动程序失败的编程外部编程 端点SQL19B上的连接性 (CC372B961FB8178C2461D26BF16C4232A62E01C5F48B8B8B8FCEC27370506CC095(: 错误启动Userland代理:听TCP 0.0.0.0:1433:bind:an 试图以访问权限禁止的方式访问插座 权限。"

摘录来自log-file:

    [21:39:17.692][ApiProxy          ][Info   ] time="2019-08-01T21:39:17+02:00" msg="proxy >> HEAD /_pingn"
[21:39:17.696][ApiProxy          ][Info   ] time="2019-08-01T21:39:17+02:00" msg="proxy << HEAD /_ping (3.9929ms)n"
[21:39:17.699][GoBackendProcess  ][Info   ] error CloseWrite to: The pipe is being closed.
[21:39:17.742][ApiProxy          ][Info   ] time="2019-08-01T21:39:17+02:00" msg="proxy >> DELETE /v1.40/containers/22810276e261n"
[21:39:17.758][ApiProxy          ][Info   ] time="2019-08-01T21:39:17+02:00" msg="proxy << DELETE /v1.40/containers/22810276e261 (16.129ms)n"
[21:39:17.759][GoBackendProcess  ][Info   ] error CloseWrite to: The pipe is being closed.
[21:39:27.866][ApiProxy          ][Info   ] time="2019-08-01T21:39:27+02:00" msg="proxy >> HEAD /_pingn"
[21:39:27.869][ApiProxy          ][Info   ] time="2019-08-01T21:39:27+02:00" msg="proxy << HEAD /_ping (1.6595ms)n"
[21:39:27.870][GoBackendProcess  ][Info   ] error CloseWrite to: The pipe is being closed.
[21:39:27.894][ApiProxy          ][Info   ] time="2019-08-01T21:39:27+02:00" msg="proxy >> POST /v1.40/containers/create?name=SQLLinuxLocalPersistn"
[21:39:27.908][APIRequestLogger  ][Info   ] [db460e2b-7d77-4756-be19-665715a9a182] POST http://unix/usage
[21:39:27.909][APIRequestLogger  ][Info   ] [db460e2b-7d77-4756-be19-665715a9a182] POST http://unix/usage -> 200 OK took 0ms
[21:39:27.909][ApiProxy          ][Info   ] time="2019-08-01T21:39:27+02:00" msg="Rewrote mount C:\Docker\SQL:/sql (volumeDriver=) to /host_mnt/c/Docker/SQL:/sql"
[21:39:28.049][ApiProxy          ][Info   ] time="2019-08-01T21:39:28+02:00" msg="proxy << POST /v1.40/containers/create?name=SQLLinuxLocalPersist (154.5485ms)n"
[21:39:28.050][ApiProxy          ][Info   ] time="2019-08-01T21:39:28+02:00" msg="proxy >> POST /v1.40/containers/89d13c9d2d2bae095cf66e94b5bb60907a50cb199eb2bdcef9845d493435be07/wait?condition=next-exitn"
[21:39:28.052][GoBackendProcess  ][Info   ] error CloseWrite to: The pipe is being closed.
[21:39:28.080][APIRequestLogger  ][Info   ] [a9a496c9-767a-4bd2-917c-f3f1391609dc] POST http://unix/usage
[21:39:28.082][APIRequestLogger  ][Info   ] [a9a496c9-767a-4bd2-917c-f3f1391609dc] POST http://unix/usage -> 200 OK took 0ms
[21:39:28.060][ApiProxy          ][Info   ] time="2019-08-01T21:39:28+02:00" msg="proxy >> POST /v1.40/containers/89d13c9d2d2bae095cf66e94b5bb60907a50cb199eb2bdcef9845d493435be07/startn"
[21:39:28.088][APIRequestLogger  ][Info   ] [89bf69bf-5084-4d4b-a887-c7acb99bf131] POST http://unix/usage
[21:39:28.088][APIRequestLogger  ][Info   ] [6ca0e28f-bba3-4f66-afc5-43f6d486c8a2] POST http://unix/usage
[21:39:28.089][APIRequestLogger  ][Info   ] [89bf69bf-5084-4d4b-a887-c7acb99bf131] POST http://unix/usage -> 200 OK took 0ms
[21:39:28.089][APIRequestLogger  ][Info   ] [6ca0e28f-bba3-4f66-afc5-43f6d486c8a2] POST http://unix/usage -> 200 OK took 0ms
[21:39:28.067][ApiProxy          ][Info   ] time="2019-08-01T21:39:28+02:00" msg="mount point type:bind"
[21:39:28.068][ApiProxy          ][Info   ] time="2019-08-01T21:39:28+02:00" msg="mount point:/host_mnt/c/Docker/SQL"
[21:39:28.205][Moby              ][Info   ] [ 2254.975742] docker0: port 1(veth69918f7) entered blocking state
[21:39:28.250][Moby              ][Info   ] [ 2255.087127] docker0: port 1(veth69918f7) entered disabled state
[21:39:28.295][Moby              ][Info   ] [ 2255.132041] device veth69918f7 entered promiscuous mode
[21:39:28.354][Moby              ][Info   ] [ 2255.176944] IPv6: ADDRCONF(NETDEV_UP): veth69918f7: link is not ready
[21:39:28.439][GoBackendProcess  ][Info   ] Adding tcp forward from 0.0.0.0:1433 to 172.17.0.2:1433
[21:39:28.560][Moby              ][Info   ] [ 2255.385920] docker0: port 1(veth69918f7) entered disabled state
[21:39:28.616][Moby              ][Info   ] [ 2255.442735] device veth69918f7 left promiscuous mode
[21:39:28.667][Moby              ][Info   ] [ 2255.497549] docker0: port 1(veth69918f7) entered disabled state
[21:39:28.826][ApiProxy          ][Info   ] time="2019-08-01T21:39:28+02:00" msg="proxy << POST /v1.40/containers/89d13c9d2d2bae095cf66e94b5bb60907a50cb199eb2bdcef9845d493435be07/start (767.0192ms)n"
[21:39:28.829][GoBackendProcess  ][Info   ] error CloseWrite to: The pipe is being closed.
[21:39:28.834][ApiProxy          ][Info   ] time="2019-08-01T21:39:28+02:00" msg="Cancel connection..."
[21:39:28.836][ApiProxy          ][Info   ] time="2019-08-01T21:39:28+02:00" msg="proxy << POST /v1.40/containers/89d13c9d2d2bae095cf66e94b5bb60907a50cb199eb2bdcef9845d493435be07/wait?condition=next-exit (786.0411ms)n"

这会导致创建的容器,但没有分配的端口。因此无法启动SQL Server。

edit1:似乎没有使用端口1433(至少在" netstat -abn"下未列出(

我能够通过运行:

来修复它
net stop winnat
net start winnat

来源:https://github.com/docker/for-win/issues/9272#issuecomment-776225866

我面临同一问题,我不想更改MSSQL的默认端口(1433(

在这里我为解决此问题所做的工作。

确保您的端口未使用,请转到资源监视器以验证它。现在检查端口是否保留。打开您的命令提示并输入此

netsh int ipv4 show excludedportrange protocol=tcp

此处列出的端口由Hyper-V管理,删除端口1433的唯一方法是禁用Hyper-V,保留端口1433,因此Hyper-V不保留。

禁用Hyper-V

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

保留端口1433

netsh int ipv4 add excludedportrange protocol=tcp startport=1433 numberofports=1

启用Hyper-V

dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

启动Docker并运行您的容器

检查您的端口是否在排除范围之一中:

netsh int ipv4 show excludedportrange protocol=tcp

如果被排除在外,您很可能会因窗口更新而改变动态端口启动范围。

使用netsh int ipv4 show dynamicport tcp检查动态启动端口范围,并使用netsh int ipv4 set dynamic tcp start=49152 num=16384修复它,重新启动后,排除端口范围应该更改。

来源:https://github.com/docker/for-win/issues/3171#issuecomment-554587817

我在更新Docker后遇到了这个问题。我重新启动了计算机,现在一切正常。尝试重新启动。

我也有同样的问题。我通过遵循以下步骤来解决此问题:

  1. 下载并安装" Kitematic"。
  2. published IP:PORT设置为localhost:111(端口1433由于未知原因无法使用(。
  3. 启动SQLServer图像。

由于Hyper-V可能容纳某些端口,因此您可以通过netsh ipv4 show excludedportrange protocol=tcp进行检查,并且将在重新启动后更改这些端口。

您可以尝试使用restart-service nhs更改Hyper-V持有的端口,这可能会释放您想要的端口。

相关内容

最新更新