标签: docker-for-windows

在Windows中使主机名下的docker机器可用

我正在尝试通过主机名为我的Windows提供一个docker机器.创建之后就像

docker-machine create -d virtualbox mymachine
Run Code Online (Sandbox Code Playgroud)

并设置一个公开端口80的docker容器,如何为该docker机器提供一个主机名,以便我可以在我的浏览器中输入" http:// mymachine / "来加载网站?当我将"mymachine"更改为实际的IP地址时,它可以工作.

这个问题有一个答案,但我想在文件中没有条目的情况下实现它.那可能吗?hosts

virtualbox docker docker-machine docker-for-windows

9
推荐指数
2
解决办法
2848
查看次数

如何在启动时启动Docker守护进程(Windows服务)而无需登录?

我们在Windows Server 2016数据中心框中安装了Windows版Docker。

我们使用此框作为docker容器的构建代理。

当我们尝试通过守护程序连接到此框以构建容器时,会收到一条错误消息,指示守护程序未运行(在发布结束时)。

但是,如果我使用我的AD帐户登录到此框,则守护程序将启动,运行,然后我就可以连接并完成我需要做的所有事情。

有没有一种方法可以使守护进程在启动时启动而无需用户登录?仅当用户登录时,该服务才能运行。

错误信息:

error during connect: Post http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.37/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=[NameRemovedForPrivacy]&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&session=[keyRemovedForPrivacy]&shmsize=0&t=[serverNameRemovedForPrivacy]&target=&ulimits=null: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.

我尝试过的

  • 已验证的Docker在Windows服务中列出,并配置为自动启动。
  • 在Windows Task Scheduler中创建条目以执行 docker executablecom.service.docker在启动时使用优先权限。

windows-server octopus-deploy docker docker-for-windows

9
推荐指数
2
解决办法
5578
查看次数

Docker Windows 本地注册表:收到意外的 HTTP 状态:500 内部服务器错误

我正在尝试将 Windows 容器的映像推送到 Windows VM 上的“本地”存储库,该存储库具有自己的 IP 地址。

因此,当我在虚拟机上创建注册表时,我可以通过转到 ipaddress:5000 来查看本地计算机上的存储库列表。

但是,当我尝试将图像推送到注册表时,它显示要推送的层,但在底部显示收到意外的 HTTP 状态:500 内部服务器错误。

当我切换到 Linux 容器时,这不是问题。我可以从注册表中推送和拉取,没有问题。

containers docker docker-registry docker-for-windows

9
推荐指数
2
解决办法
3万
查看次数

如何在基于 windows server core 的 docker 镜像中安装 ODBC Driver 17?

我正在为我的应用程序设置一个新的 docker windows servercore 映像。数据访问使用ODBC Driver 17 for SQL Server。我需要在图像上安装它,所以在我的Dockerfile我包括以下内容:

FROM mcr.microsoft.com/windows/servercore:ltsc2016

COPY msodbcsql_17.3.1.1_x64.msi c:\\msodbcsql_17.3.1.1_x64.msi

RUN msiexec.exe /i C:\\msodbcsql_17.3.1.1_x64.msi /norestart /qn IACCEPTMSODBCSQLLICENSETERMS=YES
...
Run Code Online (Sandbox Code Playgroud)

当我运行时docker build...出现以下错误

The command 'cmd /S /C msiexec.exe /i C:\\msodbcsql_17.3.1.1_x64.msi /norestart /qn IACCEPTMSODBCSQLLICENSETERMS=YES' returned a non-zero code: 1603
Run Code Online (Sandbox Code Playgroud)

代码1603表示需要重新启动。

我不确定如何重新启动图像。我该如何继续呢?没有驱动程序,我将无法运行我的应用程序。

docker dockerfile docker-for-windows

9
推荐指数
1
解决办法
4245
查看次数

无法访问 Docker for Windows 中的 host.docker.internal

在 VS 中制作的 .Net Framework 应用程序(应用程序由 VS 构建和部署)中,我尝试使用 host.docker.internal 从 Docker 访问我的本地数据库,但这没有解决,当尝试 ping 它时,我得到:
Ping request找不到主机host.docker.internal。请检查名称并重试。
将 host.docker.internal 更改为我的内部 IP 地址确实可以正常工作(端口已公开),但由于该项目已被其他人使用,所以我无法使用它。
我的PC中的hosts文件包含host.docker.internal(使用 Management Studio 确实成功)。

我已经尝试将 Docker for Windows 降级到版本 2.0.0.3。
我尝试了微软提供的一些图像(4.7 1803和4.8 1803 1903及最新版本)。
我尝试添加组成网络模式:“主机”

Docker Compose 与 VS 生成的相同,因此只有:项目、镜像以及使用上下文和 Dockerfile 进行构建

Docker Compose 覆盖:
version: '3.4' {code}services: xxx: ports: - "80" depends_on: - xxx.webapi xxx.webapi: ports: - "80" networks: default: external: name: nat

Dockerfile
来自 mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-1903
添加https://download.microsoft.com/download/C/9/E/C9E8180D-4E51-40A6-A9BF-776990D8BCA9/rewrite_amd64。 msi /install/rewrite_amd64.msi
RUN msiexec.exe /ic:\install\rewrite_amd64.msi /passive
ARG 源
WORKDIR /inetpub/wwwroot …

.net hosts docker docker-compose docker-for-windows

9
推荐指数
0
解决办法
1073
查看次数

Docker 构建总是失败,错误是 hcsshim::PrepareLayer - 在 Win32 中失败:功能不正确。(0x1) Windows 容器

重现的步骤非常简单。

创建一个 Dockerfile。

我的 Dockerfile 有更多的行,但我已经修剪了它们,以便我们可以专注于问题的根源。

就是说,仅这两行(没有更多内容)就显示了问题。

FROM microsoft/iis
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; $VerbosePreference = 'Continue'; "]
Run Code Online (Sandbox Code Playgroud)

运行docker build .,你得到hcsshim::PrepareLayer - failed failed in Win32: Función incorrecta. (0x1)

Windows 10 Pro 1909(但它也发生在 1903 年)

Docker 版本:2.1.0.5

引擎:19.03.5

机器:0.16.2

docker-for-windows

9
推荐指数
1
解决办法
3295
查看次数

在 Windows 上使用 docker-compose 增加 Docker 容器的内存?

在 Windows 版 Docker 上,我有一个简单的 SQL Server 容器,通过一个简单的文件microsoft/mssql-server-windows-developer启动该容器。docker-compose updocker-compose.yaml

有没有办法给这个容器分配超过1GB的内存?我可以在直接运行映像或使用 构建映像时执行此操作-m 4GB,但在使用 Docker Compose 时我不知道如何执行此操作。这个容器需要超过 1GB 的 RAM 才能正常运行,到目前为止我的所有研究都没有发现任何有用的信息。

我研究了资源配置选项,但这仅适用于在 Docker Swarm 下运行时,我不需要。

out-of-memory docker docker-compose docker-for-windows

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

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 端口映射在 Windows 10 上不起作用

我是码头工人的新手。我正在尝试在 docker 上运行一个简单的节点应用程序。但是,我面临着 docker 端口发布的问题。

Docker 版本- 18.03.0-ce,构建 0520e24302

我的简单应用程序代码:

'use strict';

const express = require('express');

// Constants
const PORT = 8081;
const HOST = '0.0.0.0';

// App
const app = express();
app.get('/', (req, res) => {
  res.send('Hello world\n');
});

app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);
Run Code Online (Sandbox Code Playgroud)

我的码头文件:

FROM node:carbon

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

RUN …
Run Code Online (Sandbox Code Playgroud)

docker docker-for-windows

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

尝试以编程方式运行容器时从 Docker 退出代码 125

我正在尝试让集成测试正常工作。在测试初始化​​阶段,我尝试从 Docker 映像启动 Redis 服务器。

\n\n
var p = new Process { StartInfo = new ProcessStartInfo("docker", "run --name redistest \xe2\x80\x93p 6379:6379 redis")};\np.Start();\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我这样做时,进程退出,退出代码为125。如果我注释掉这些行,请在测试代码执行之前在测试中命中断点,然后从命令行运行

\n\n
docker run --name redistest -p 6379:6379 redis\n
Run Code Online (Sandbox Code Playgroud)\n\n

从断点继续时,测试按预期运行。125存在代码仅意味着docker run失败,因此没有更多信息可继续。

\n\n

在命令行调用或 C# 调用之前,我确保没有名为的redistest容器

\n\n
docker stop redistest\ndocker rm redistest\n
Run Code Online (Sandbox Code Playgroud)\n\n

但行为上的差异仍然存在。所有这些以编程方式运行 docker 的尝试都失败了:

\n\n
    \n
  • 添加-d
  • \n
  • 以普通用户身份运行
  • \n
  • 以提升的权限运行
  • \n
  • 从测试中运行
  • \n
  • 从 .NET Framework 控制台应用程序运行
  • \n
\n\n

为什么以编程方式创建docker run命令进程会导致 docker 以 …

c# process docker programmatically-created docker-for-windows

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