我正在尝试通过主机名为我的Windows提供一个docker机器.创建之后就像
docker-machine create -d virtualbox mymachine
Run Code Online (Sandbox Code Playgroud)
并设置一个公开端口80的docker容器,如何为该docker机器提供一个主机名,以便我可以在我的浏览器中输入" http:// mymachine / "来加载网站?当我将"mymachine"更改为实际的IP地址时,它可以工作.
我们在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.
我尝试过的
executable并com.service.docker在启动时使用优先权限。我正在尝试将 Windows 容器的映像推送到 Windows VM 上的“本地”存储库,该存储库具有自己的 IP 地址。
因此,当我在虚拟机上创建注册表时,我可以通过转到 ipaddress:5000 来查看本地计算机上的存储库列表。
但是,当我尝试将图像推送到注册表时,它显示要推送的层,但在底部显示收到意外的 HTTP 状态:500 内部服务器错误。
当我切换到 Linux 容器时,这不是问题。我可以从注册表中推送和拉取,没有问题。
我正在为我的应用程序设置一个新的 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表示需要重新启动。
我不确定如何重新启动图像。我该如何继续呢?没有驱动程序,我将无法运行我的应用程序。
在 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 …
重现的步骤非常简单。
创建一个 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
在 Windows 版 Docker 上,我有一个简单的 SQL Server 容器,通过一个简单的文件microsoft/mssql-server-windows-developer启动该容器。docker-compose updocker-compose.yaml
有没有办法给这个容器分配超过1GB的内存?我可以在直接运行映像或使用 构建映像时执行此操作-m 4GB,但在使用 Docker Compose 时我不知道如何执行此操作。这个容器需要超过 1GB 的 RAM 才能正常运行,到目前为止我的所有研究都没有发现任何有用的信息。
我研究了资源配置选项,但这仅适用于在 Docker Swarm 下运行时,我不需要。
我过去两周一直在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 端口发布的问题。
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 映像启动 Redis 服务器。
\n\nvar p = new Process { StartInfo = new ProcessStartInfo("docker", "run --name redistest \xe2\x80\x93p 6379:6379 redis")};\np.Start();\nRun Code Online (Sandbox Code Playgroud)\n\n当我这样做时,进程退出,退出代码为125。如果我注释掉这些行,请在测试代码执行之前在测试中命中断点,然后从命令行运行
\n\ndocker run --name redistest -p 6379:6379 redis\nRun Code Online (Sandbox Code Playgroud)\n\n从断点继续时,测试按预期运行。125存在代码仅意味着docker run失败,因此没有更多信息可继续。
在命令行调用或 C# 调用之前,我确保没有名为的redistest容器
docker stop redistest\ndocker rm redistest\nRun Code Online (Sandbox Code Playgroud)\n\n但行为上的差异仍然存在。所有这些以编程方式运行 docker 的尝试都失败了:
\n\n-d为什么以编程方式创建docker run命令进程会导致 docker 以 …
c# process docker programmatically-created docker-for-windows