我试图改变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启动参数来更改这些设置?
我在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仍未检查驱动器.
我过去两周一直在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命令来查看卷内的文件?
我为windows运行docker,在我的机器上创建一个MobyLinuxVM来运行Docker.我无法在这台机器上获得远程桌面连接,就像我可以使用Ubuntu VM(我也在我的机器上运行).
因此,我无法看到一种方法来查看我的主机卷内部(因为它们实际上位于MobyLinuxVM中),就好像我在我的Ubuntu VM上运行docker一样,我可以远程访问机器并查看.
因此,有没有办法可以运行某种docker volume命令来列出每个卷内的内容?
最新的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
我想在我的 Docker 容器中运行 IIS
但是当我写这个命令时:
docker pull microsoft/windowsservercore
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
使用默认标记:来自守护进程的最新错误响应:microsoft/windowsservercore 清单:未找到最新
我正在尝试从主机运行一个四节点群集,我的计算机是管理器,并将三个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
在 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)
将持久卷连接到另一个位置,例如
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) 我在 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) 显然,Worpress 没有正确的文件权限。
1. 检查 Docker for Windows 设置并升级到 WSL 2
我现在正在使用基于 WSL 2 的引擎,它应该为系统上的所有文件提供完全的 root 权限。我升级到 WPL 2,因为我第一次使用基于 Hyper-V 的后端(当然还有正确的文件权限设置),我尝试通过升级来解决问题。没运气。
2. 试验chmod和chown
首先,我添加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: …
docker ×8
windows ×2
database ×1
docker-swarm ×1
dockerfile ×1
hyper-v ×1
iis ×1
php ×1
sql-server ×1
tls1.2 ×1
windows-10 ×1
windows-subsystem-for-linux ×1
wordpress ×1