问题标签 [docker-for-windows]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 带有 docker microsoft/iis 的卷
我试图将一个卷附加到 docker 容器,但我尝试过的方法都没有奏效。我正在使用 Azure Windows 2016 vm 这里的 docker 信息:
因此,在我的 docker 文件中,我将我的 IIS 网站复制到 inetpub/root 中,我的目标是将容器上的 /inetpub 挂载到本地计算机,以便可以在运行时对脚本和 web.config 进行更改。
起初我在成功构建的 dockerfile 中尝试了 VOLUME /inetpub,但是当我运行容器时,它给了我以下错误。
CreateContainer 期间遇到错误:Windows 系统调用失败:目录不为空
但是 docker 文档中没有提到需要为空的卷。
然后我尝试在运行时附加卷,例如 docker run -p 80:80 -v C:/build/inetpub:C:/inetpub web/iis 。这给了我与上面相同的错误。但是当我尝试
docker run -p 80:80 -v C:/build/inetpub:C:/randomtest web/iis 时。它可以工作,但我无法修改容器停止的其他文件。
我尝试的最后一件事是使用 docker-compose,在我的服务中我有卷: - ./inetpub:/inetpub 给出以下错误
无法为服务 wfgen 创建容器:无效的卷规格“/inetpub”:无效的卷规格
我尝试了 - ./inetpub:/inetpub 的许多变体,但它们总是给我同样的错误。
感谢您的帮助,我已经坚持了好几天没有任何结果。
这是我的码头文件
docker - 如何使用 dockerfile 将参数传递给 .NET 核心项目
我有一个.NET Core 项目(使用 Visual Studio 并通过Visual Studio Tools for Docker添加 docker 文件)。
我的DockerFile
样子是这样的:
我的问题是,如何将参数传递到项目中?
azure - Windows Nano Server 上的 Docker:磁盘空间不足
我在 Windows Server 2016 Nano Server 上成功启动了 docker。我已经提取了图像 microsoft/nanoserver 和 microsoft/sample-dotnet
但是,当我尝试提取其他图像时,例如 microsoft/dotnet-framework,我收到以下消息:
“docker : write C:\Windows\TEMP\GetImageBlob193586394: 磁盘空间不足。”
我在 Azure 上使用带有 512 GB SSD 的 Nano Server。我刚刚部署了操作系统。
有谁知道发生了什么?
谢谢!
docker - 在 Windows 10 中使用 Docker for Windows 将容器端口公开给主机
我正在阅读docker API并尝试创建一个简单的容器并公开 1 个端口。
在我的示例中,我有一个应用程序侦听容器内的TCP端口9595
,并且我想从外部世界(即容器的主机)上的端口访问它9090
。
在创建我拥有的容器"ExposedPorts": { "9595/tcp: {}" }
和"PortBindings": { "9595/tcp": [{ "HostPort": "9090" }] }
.
所以,如果我从主机访问http://container_internal_ip:9595
它就可以了!但是,当我http://localhost:9090
使用此端口映射功能访问时,这是我所期望的,它不起作用......
跑步时docker port containerID
我有9595/tcp -> 0.0.0.0:9090
,这应该意味着,when connecting to any IP on the host, at port 9090, forward to the container in port 9595
.
那么,这里有什么问题?为什么我无法连接到 9090?
我感谢任何澄清。
docker - 如何在“Docker for Windows”中启用 docker 远程 API
我的 Windows 10 机器上安装了Docker Desktop for Windows 1.12.1-stable(build: 7135)。我想通过 port使用远程 API4243
访问 docker 。我猜这个端口默认没有启用。你知道如何打开它吗?
docker - 用于 nanoserver / windowsservercore 的 Docker 拉取失败并显示无法注册层访问的消息在提取结束时被完全拒绝
我正在使用下面的链接来拉取 docker 镜像
https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/quick_start_windows_10
第 3 步拉取 nanoserver 映像发生错误。windowservercore 图像拉取也会发生这种情况。错误显示为
正是在提取结束时,它因访问被拒绝而失败。以下来自事件查看器的错误
尝试 v2 注册表时出错:无法注册层:重命名 C:\ProgramData\docker\image\windowsfilter\layerdb\tmp\write-set-552404215 C:\ProgramData\docker\image\windowsfilter\layerdb\sha256\342d4e407550c52261edd20cd901b5ce438f0b1e940336de397821061236 访问是否认。
尝试在错误后拉下一个端点:无法注册层:重命名 C:\ProgramData\docker\image\windowsfilter\layerdb\tmp\write-set-552404215 C:\ProgramData\docker\image\windowsfilter\layerdb\sha256\342d4e407550c52261edd20cd901b5ce438f0b1e940336de397821061 : 访问被拒绝。
更新 1:问题发生在一些 microsoft/* 图像上,而不是所有图像上。
docker - 为 Windows 运行 Docker,暴露端口时出错
我知道有很多关于在 Windows 上运行 Docker 的问题,但是这个问题是关于在 Windows 上运行全新的 Docker for Windows。
就我而言,我使用的是 Windows 10 Pro 64 位。根据该站点,应该支持此版本。
我一直在关注我在这里找到的教程:
https
://prakhar.me/docker-curriculum/
我当然也尝试遵循官方指南:https ://docs.docker.com/docker-for-windows/
在这两个教程中,当尝试使用-P
参数分配端口或尝试指定端口时,我都会收到相同的错误消息-p 8080:5000
:
在官方指南中,我运行docker run -d -p 80:80 --name webserver nginx
并得到:
C:\Program Files\Docker\Docker\Resources\bin\docker.exe:来自守护进程的错误响应:驱动程序在端点网络服务器上编程外部连接失败(f9946544e4c6ad2dd9cb8cbccd251e4d48254e86562bd8e6da75c3bd42c7e45a):启动用户级代理时出错:mkdir /port/tcp:0.0.0.0: 80:tcp:172.17.0.2:80:输入/输出错误。
按照非官方指南,我运行docker run -p 8888:5000 prakhar1989/catnip
并得到基本相同的错误:
C:\Program Files\Docker\Docker\Resources\bin\docker.exe:来自守护进程的错误响应:驱动程序在端点focused_swartz(48a0c005779c6e89bf525ead2ecff44a7f092495cd22ef7d19973002963cb232)上编程外部连接失败:启动用户级代理时出错:mkdir /port/tcp:0.0.0.0: 8888:tcp:172.17.0.2:5000:输入/输出错误。
如果我不尝试分配容器将运行的端口,但我不知道如何访问它。
我正在运行的 docker 版本:
- Docker 版本 1.12.3,构建 6b644ec`
- docker-compose 版本 1.8.1,构建 004ddae`
- docker-machine.exe 版本 0.8.2,构建 e18a919`
任何帮助将不胜感激。谢谢你。
docker - 构建一个可以执行 npm 任务的 Web 应用程序
在发布任何配置之前,我会尝试解释我想要归档的内容并想提一下,我是 docker 新手。
为了使路径对话更容易,假设我们谈论的是“Docker me up!”项目。它位于X:\docker-projects\docker-me-up\
.
目标:
我想运行多个具有不同内容的 nginx 项目,每个项目代表一个专用的构建。在开发 [ docker-compose up -d
] 期间,容器应立即更新;效果很好。
棘手的部分是,我想将我的主机中的 npm [ http://gruntjs.com]直接外包到容器/映像中,因此只要安装 docker,我就可以在任何地方进行调试和开发。因此,npm 必须安装在“服务”中,并且需要初始化 watcher。
每个项目都封装在 docker 主机/build 上自己的文件夹中,除了它自己之外,不应该有任何其他知识。
我的解决方案:
我尝试了许多不同的版本,包括“volumes_from”等,但我决定向您展示这个,因为它已经缩小但仍然完整。
Docker-compose.yml
Dockerfile
问题:
如您所见,“数据”服务包含npm并且应该能够执行 npm 命令。但是,如果我运行docker-compose up -d
一切正常。我可以编辑页面内容,使用它等等。但是数据容器没有运行,因此无法执行任何 npm 命令。除非我有很大的逻辑错误;这是很有可能的;-)
环境:
- Windows 10 专业版 [更新日期]
- 使用了 docker 的共享驱动器
- Docker 版本 1.12.3,构建 6b644ec
- docker-machine 版本 0.8.2,构建 e18a919
- docker-compose 版本 1.8.1,构建 004ddae
docker - 无法在 Docker 容器内调用 chown (Docker for Windows)
我正在尝试使用官方的 Mongo dockerfile来启动数据库,我正在使用-v
命令将本地目录映射到/data
容器内部。
作为 的一部分Dockerfile
,它尝试将此目录 chown 给用户 mongodb:
但是,使用以下命令失败:
我在这里做错了什么?我找不到任何有关此的文档 - 当然容器应该对映射目录具有完全权限,因为它是在 docker run 命令中显式传递的:
shell - 如何从 Windows shell 访问 docker VM (MobyLinux) 文件系统?
是否可以登录主机 VM 的 shell,类似于我们如何轻松进入正在运行的容器 bash?
docker exec -it bash
我不小心弄坏了一个容器的关键文件,导致它无法启动。不幸的是,该容器将其数据存储在其中。结果是每当我尝试运行它时,它都无法启动。我看到的唯一解决方案是导航到托管 docker daemon 的文件。但是,我在 Windows 上运行 docker VM,我无法访问 VM (MobyLinuxVM) 中的文件。
我正在使用 Docker for Windows,版本 1.12.3-beta30.1 (8711)