我已经运行媒体集群一段时间了,没有出现任何问题。我将所有内容联网到两个不同的 docker 网络中...第一个网络只是将 docker 实例桥接到本地计算机,第二个网络是一个 docker VPN 容器,我用于其他媒体服务(我正在工作的早期版本)可以在这里找到: https: //github.com/Xander-Rudolph/MediaDocker)
然而,最奇怪的事情今天发生了。我运行了 Windows 的 docker 更新,现在 docker spools 没有任何错误或问题,但是没有任何服务在运行 docker 的机器之外工作。通常我会查看路由器中的几个服务(即桥上的 wordpress/joomla),它们在我的本地网络之外工作,但它们都不再工作了。我能够确认它不是 DNS A 记录,因为我能够使用为路由器映射的 RDP 端口,并且当我在同一网络中的另一台计算机上测试时,它无法通过内部访问服务IP(但可以 RDP)。
任何人都知道可以改变什么来打破这个?我已经更新了所有 docker 镜像,甚至重建了我的 VPN 容器(在我意识到这是一个网络问题之前)。我可以采取哪些步骤来尝试解决 docker 中出现的问题以防止从本地主机外部进行访问?
更新
我已经能够排除 docker 更新作为根本原因...我在我的笔记本电脑上升级了 docker(之前运行与我的台式机相同的版本)并且它没有相同的问题...此配置必须是本地化到这个桌面...不知道问题是什么...将尝试桌面上的 Linux VM 而不是 Windows 的 docker...
更新2
在虚拟机和 WSL 中进行了大量的修改之后,我仍然只能从本地主机访问 docker 服务,而不能从网络上的其他计算机或通过主机上的 IP 访问(可能类似于以下内容:无法通过 IP 地址访问本地主机)。RDP 确实有效,因此计算机可以访问,但服务无法访问。
我不确定这是否是 docker 网络配置或 Windows 网络配置的结果(我在 ubuntu 20.08 上使用安装有 docker 的 WSL),但我没有看到任何突出的情况。我将删除 docker windows 的标签,但这绝对是网络问题,我怀疑这与容器在 VPN 后面运行这一事实有关......尽管我不知道为什么我会这样做能够在本地主机上访问它们,但不能访问另一个虚拟机上的IP...
当我跑步时
netstat -a -o
Run Code Online (Sandbox Code Playgroud)
在 …
我有几个查询可用于识别SQL数据库中的问题,但我正在尝试创建可用于自动执行此操作的powershell脚本。我遇到的麻烦是,当我调用SQL脚本时,会有多个结果集,而我的脚本似乎只能捕获第一个结果集。我想知道如何循环浏览所有结果。这是带有一些简单选择的代码
$dataSource = 'Server'
$database = "DB"
$sqlcommand = @"
Select TOP 1000 * from tblA;
Select TOP 1000 * from tblB
"@
Function Convert-Dataset
{
Param
(
[Parameter(Mandatory=$true)]
$dataset
)
Begin
{
$return=@()
For($r = 0; $r -lt $dataset.tables[0].rows.Count; $r++)
{
$table= new-object psobject
If($dataset.tables[0].columns.ColumnName.Count -le 1)
{
$colName = [String]$dataset.tables[0].columns.ColumnName
If($dataset.tables[0].rows.Count -eq 1)
{
$colValue = [string]$dataset.tables[0].rows.$colName
}
Else
{
$colValue = [string]$dataset.tables[0].rows[$r].$colName
}
$table | Add-Member -memberType noteproperty -Name $colName -Value $colValue
}
Else{
For($c = 0; …Run Code Online (Sandbox Code Playgroud) 我对 Web API 调用不是很精通,但我一直在使用以下 powershell 代码(这个例子中的这个站点是我发现有一些公共数据的站点......我的站点是内部站点,需要我传递凭据,这对我来说一直没有问题):
If(-not (Get-InstalledModule -Name 'ConfluencePS')){Install-Module ConfluencePS}
Import-Module ConfluencePS
Set-ConfluenceInfo -BaseUri "https://wiki.opnfv.org"
$space = Get-confluencepage -Spacekey ds
ForEach($item in $space)
{
$splatParams = @{
Uri = "https://wiki.opnfv.org/rest/api/content/$($item.ID)/restriction"
ContentType = 'application/json'
method = 'GET'
}
#reference https://developer.atlassian.com/cloud/confluence/rest/#api-api-content-id-restriction-get
Invoke-RestMethod @splatParams
}
Run Code Online (Sandbox Code Playgroud)
ConfluencePS的文档显示限制仍然是一个开放的功能请求,但我需要让它为一个项目工作。
我在 ConfluencePS.psm1 的第 982 行设置了一个断点,并且能够看到各种调用以及参数的结构,但是当我尝试模仿它(并根据 Confluence文档更改 URI )时,我收到错误“HTTP错误 405 - MethodNotAllowed”。任何人都对我如何使这项工作有建议?我正在尝试返回应用于特定空间中所有页面的权限。
我试图让 SQL 使用 xp_cmdshell 执行一些 powershell 命令,该命令一直在工作,但是我遇到了一个不寻常的问题。当我尝试使用管道时,它无法识别管道后的命令。我从标准的 cmd 行尝试了这个,可以确认发生了同样的问题。这是我正在使用的命令:
powershell.exe -command get-eventlog -Newest 10 -LogName Application -Before "2018-04-18T22:02:23" -After "2018-04-17T22:02:23" -computername dk01sv1115 | Select Message
Run Code Online (Sandbox Code Playgroud)
当我使用命令而不使用| Select Message最后时,它可以正常工作。问题是我没有得到完整的事件消息,我尝试使用 Select 和 Format 函数尝试获取完整的详细信息,但管道似乎是问题所在。如果您在启动 powershell 后运行相同的命令(即运行 powershell.exe 然后运行该命令),它可以正常工作,但是当您使用 SQL 作为 SQL 中的单独行运行 powershell.exe 时,它会无限期地运行。示例 SQL:
Declare @command nvarchar(1000),@computername nvarchar(1000)
Set @computername = 'test'
Set @command = 'powershell.exe
get-eventlog -Newest 10 -LogName Application -Before "' + REPLACE(Convert(VARCHAR(255),GETDATE(),120),' ','T') +'" -After "' + REPLACE(Convert(varchar(255),DateAdd(dd,-1,GETDATE()),120),' ','T') + '" -computername ' + @computername + …Run Code Online (Sandbox Code Playgroud) sql-server powershell cmd command-line-interface xp-cmdshell
powershell ×3
sql-server ×2
cmd ×1
docker ×1
networking ×1
windows-subsystem-for-linux ×1
xp-cmdshell ×1