标签: docker-for-windows

在daemon.json中更改Windows的"hosts"/"-h"Docker

我试图改变daemon.json码头工人Windows版桌面(安装Windows 10 Aniversary最新更新),1.13.0-rc5这样我就可以改变"hosts": []这样的设置:

{
  "hosts": [
    "tcp://0.0.0.0",
    "http://0.0.0.0"
  ]
}
Run Code Online (Sandbox Code Playgroud)

但是,使用设置应用程序更改设置后,我收到此错误:

消息守护程序守护程序失败并显示消息:无法使用文件C:\ ProgramData\docker\config\daemon.json配置Docker守护程序:以下指令既指定为标志又指定在配置文件中:hosts :( from flag:[npipe] :////./pipe/docker_engine_windows],来自文件:[tcp://0.0.0.0 http://0.0.0.0])

看起来守护进程已经使用-Hflag 启动,并且json配置未与它合并.

那么,我们如何通过json文件或更改dockerd启动参数来更改这些设置?

docker docker-for-windows docker-desktop

8
推荐指数
1
解决办法
4256
查看次数

无法在Docker for Windows上共享C驱动器

我在Windows 10 Enterprise上运行Docker Desktop for Windows.我得到以下内容:

PS C:\ Users> docker run --rm -vc:/ Users:/ data alpine ls/data C:\ Program Files\Docker\Docker\Resources\bin\docker.exe:来自守护进程的错误响应:C:驱动器是不在Docker for Windows设置中共享它.

从共享驱动器选项卡中的Docker设置,我看到C驱动器在那里,但未检查.当我检查它并按Apply时,系统会提示我输入密码.成功输入后,C仍未检查驱动器.

docker docker-for-windows docker-desktop

8
推荐指数
1
解决办法
1934
查看次数

Docker Run命令挂起,没有任何错误

我过去两周一直在Windows Server 2016中使用docker.我正在尝试使用运行html文件

microsoft/windowsservercore (docker image)
Run Code Online (Sandbox Code Playgroud)

执行命令后

" docker run -it --name CoreServerCMD microsoft/windowsservercore cmd.exe"

执行挂起,不返回.

请帮忙这是图片参考:

错误

docker docker-for-windows docker-desktop

8
推荐指数
3
解决办法
6264
查看次数

有没有办法在docker卷中列出文件?

简单问题:是否有docker命令来查看卷内的文件?

我为windows运行docker,在我的机器上创建一个MobyLinuxVM来运行Docker.我无法在这台机器上获得远程桌面连接,就像我可以使用Ubuntu VM(我也在我的机器上运行).

因此,我无法看到一种方法来查看我的主机卷内部(因为它们实际上位于MobyLinuxVM中),就好像我在我的Ubuntu VM上运行docker一样,我可以远程访问机器并查看.

因此,有没有办法可以运行某种docker volume命令来列出每个卷内的内容?

docker docker-for-windows

8
推荐指数
1
解决办法
4948
查看次数

"tls:收到长度超过20527的超大记录"试图从Win10 WSL Bash"docker run"

再生产

最新的Docker Edge(18.03.0-ce-rc1-win54(16164))安装在Win10上.

在更新到最新的Docker CE Edge版本之前切换到"Linux容器"(但最新的"Docker for Windows"UI不再显示切换选项了吗?!).

docker run hello-world从Windows CMD 运行没问题.

但是从WSL Bash(最新的Win10 1709)调用相同的内容始终会回复此tls错误消息:

$ docker images
REPOSITORY                        TAG                        IMAGE ID            CREATED             SIZE
continuumio/miniconda3            latest                     29af5106b6a4        17 hours ago        443 MB
hello-world                       latest                     f2a91732366c        3 months ago        1.85 kB

$ docker --version
Docker version 1.13.1, build 092cba3

$ docker version
Client:
 Version:      1.13.1
 API version:  1.26
 Go version:   go1.6.2
 Git commit:   092cba3
 Built:        Thu Nov  2 20:40:23 2017
 OS/Arch:      linux/amd64

Server:
 Version:      18.03.0-ce-rc1
 API version: …
Run Code Online (Sandbox Code Playgroud)

windows docker tls1.2 windows-subsystem-for-linux docker-for-windows

8
推荐指数
1
解决办法
7353
查看次数

docker :manifest for microsoft/windowsservercore:latest not found

我想在我的 Docker 容器中运行 IIS

在此处输入图片说明

但是当我写这个命令时:

docker pull microsoft/windowsservercore
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

使用默认标记:来自守护进程的最新错误响应:microsoft/windowsservercore 清单:未找到最新

windows iis docker docker-for-windows

8
推荐指数
1
解决办法
2万
查看次数

部署服务时,如何解决Docker错误“ Win32中的hnsCall失败:找不到适配器”?

我正在尝试从主机运行一个四节点群集,我的计算机是管理器,并将三个Hyper-V VM作为工作程序节点。我试图在所有节点hnsCall failed in Win32: An adapter was not found上将静态网页作为服务运行,但是始终在主机和No such image虚拟机上接收错误(尝试从私有注册表中提取服务映像)。在部署堆栈或使用时会发生这种情况service create。但是,我可以通过容器实例运行静态页面,并且可以正常工作。

我按照本指南设置和创建了我的VM,我怀疑这是我的问题所在。我通过HyperV虚拟交换机管理器创建的虚拟交换机(名为thevswitch)既在外部,又在正确的适配器上设置。我初始化用我的主机的IPv4下一个群thevswitch--advertise-addr标志,并成功加入了虚拟机的工作节点到这个IP,同时使用驱动程序。无论如何,Docker似乎都看不到我创建的虚拟交换机。

PS C:\Docker\swarm-test> docker version
Client: Docker Engine - Community
 Version:           18.09.2
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        6247962
 Built:             Sun Feb 10 04:12:31 2019
 OS/Arch:           windows/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.2
  API version:      1.39 (minimum version 1.24)
  Go version:       go1.10.6
  Git commit:       6247962
  Built:            Sun …
Run Code Online (Sandbox Code Playgroud)

docker docker-swarm docker-machine docker-networking docker-for-windows

8
推荐指数
1
解决办法
572
查看次数

适用于 Windows 的 Docker:带有 Windows 容器的持久卷上的 SQL Server 数据库

在 Docker for Windows 和使用windows 容器时,我无法让我的持久卷在 windows 容器的主数据库目录上工作。这将是C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA 如何在不必弄乱备份和还原到 mssql-server-container 的情况下获得数据库持久卷的好处?

这可能是因为数据目录将主数据库和系统数据库存储在我尝试安装持久卷的文件夹中。

在用于 linux 容器的 SQL Server 中,这很简单,您可以将持久卷连接到/var/opt/mssql并使数据库持久。

我知道我可以从备份中将数据库恢复到容器中,但这有两个主要缺点:我必须有一个大容器,因为我正在使用一个大数据库。因此,我将容器的 20 GB 限制扩展到 60 GB,但是...每次从备份中重建数据库非常耗时。第二个缺点是,如果 mssql-dev 容器被杀死,数据库也会丢失。对该数据库的任何工作都将消失。如果数据库可以驻留在持久卷上,则情况会有所不同。

docker run -d -e sa_password=<Password> -e ACCEPT_EULA=Y -v "C:\mylocalfolder:C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA" microsoft/mssql-server-windows-developer
Run Code Online (Sandbox Code Playgroud)

错误消息是“Windows 系统调用失败:虚拟计算机或容器意外关闭。(0xc0370106)

解决方法 1

将持久卷连接到另一个位置,例如 c:\mydata防止来自上面的错误消息。然后在不使用标准数据库文件夹的情况下将数据库连接到服务器。

提取数据库.bak文件,所以有mdf和日志文件

docker run -d -e sa_password=<Password> -e ACCEPT_EULA=Y -v "C:\mylocalfolder:C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\DATA" microsoft/mssql-server-windows-developer
Run Code Online (Sandbox Code Playgroud)

完成此操作后,您现在应该在持久卷上准备好数据库文件。现在将数据库附加到服务器。这必须通过创建一个新的数据库来完成,但这个过程只需要几纳秒就可以完成!

--Get the name of your DB
RESTORE FILELISTONLY
FROM DISK …
Run Code Online (Sandbox Code Playgroud)

database sql-server docker docker-for-windows

8
推荐指数
1
解决办法
4123
查看次数

什么是 Windows 10 中的受管端口排除?

我在 Windows 10 中启用了 hyper-v。当我检查排除的端口时,我得到:

C:\> netsh interface ipv4 show excludedportrange protocol=tcp

Protocol tcp Port Exclusion Ranges

Start Port    End Port
----------    --------
      5357        5357
      9800        9800
      9801        9801
     49671       49770
     49871       49970
     50000       50059     *
     61117       61216
     61220       61319
     61902       62001

* - Administered port exclusions.
Run Code Online (Sandbox Code Playgroud)

为什么 Hyper-V 保留这些端口?

受管端口排除(即范围 50000-50059 )与其他端口排除有何不同?

例如,当我尝试在 golang 中使用 net.Listen() ping 所有这些端口时,除 50000-50059 之外的所有端口都返回错误:

listen tcp 127.0.0.1:9801: bind: An attempt was made to access a socket in a way forbidden by its access …
Run Code Online (Sandbox Code Playgroud)

hyper-v windows-10 docker-for-windows

8
推荐指数
1
解决办法
4385
查看次数

权限问题:如何在 docker for windows 上设置权限以与 Wordpress 一起使用

问题

我正在尝试使用 Docker for Windows 设置我的开发环境以与 Wordpress 一起使用。我正在使用带有自定义 Dockerfile 的 docker compose。这在 MacOS 上完美运行。在 Windows 上使用完全相同的 docker 设置虽然在 Wordpress 中让我得到这些消息。

尝试上传媒体 尝试上传媒体

尝试更新 Wordpress 尝试更新 Wordpress

显然,Worpress 没有正确的文件权限。

我试过的

1. 检查 Docker for Windows 设置并升级到 WSL 2

我现在正在使用基于 WSL 2 的引擎,它应该为系统上的所有文件提供完全的 root 权限。我升级到 WPL 2,因为我第一次使用基于 Hyper-V 的后端(当然还有正确的文件权限设置),我尝试通过升级来解决问题。没运气。

2. 试验chmodchown

首先,我添加chmod -R 777 /var/www/html/到 Dockerfile。据我所知,这应该将所有文件权限授予 root。它没有任何效果。所以也许我正在使用不同的用户?不过,该命令whoami确实让我重新获得了 root 权限。
也许我做错了什么,而用户是别的东西。所以我添加了chown -R www-data:www-data /var,因为我看到 www-data 应该是默认的 Docker 用户和组。没运气。

只是为了好玩,我还尝试chmod -R 777 /var/www/html/wp-content/uploads/在路径中更加具体。有趣的是,这给了我错误chmod: …

php wordpress dockerfile docker-for-windows

8
推荐指数
1
解决办法
8503
查看次数