gpt4 book ai didi

docker - 如何在Windows Container中获取Docker IP?

转载 作者:行者123 更新时间:2023-12-02 20:09:10 26 4
gpt4 key购买 nike

我无法从浏览器获取容器IP地址来运行它。

代码段

PS H:\DevAreaLocal\COMPANY - RAD PROJECTS\DockerApp\WebDockerCoreApp> docker-compose build

Building webdockercoreapp
Step 1/5 : FROM microsoft/aspnetcore:1.1
---> 4fe9b4d0d093
Step 2/5 : WORKDIR /WebDockerCoreApp
---> Using cache
---> b1536c639a21
Step 3/5 : COPY . ./
---> Using cache
---> 631ca2773407
Step 4/5 : EXPOSE 80
---> Using cache
---> 94a50bb10fbe
Step 5/5 : ENTRYPOINT dotnet WebDockerCoreApp
---> Using cache
---> 7003460ebe84
Successfully built 7003460ebe84
Successfully tagged webdockercoreapp:latest

PS H:\DevAreaLocal\COMPANY - RAD PROJECTS\DockerApp\WebDockerCoreApp> docker inspect --format="{{.Id}}" 7003460ebe84

有波纹管ID

sha256:7003460ebe84bdc3e8647d7f26f9038936f032de487e70fb4f1ca137f9dde737



如果我运行波纹管命令
docker inspect -f "{{ .NetworkSettings.Networks.nat.IPAddress }}" 7003460ebe84

得到以下回应

模板解析错误:模板:: 1:19:在<.NetworkSettings.Net ...>处执行“”:映射没有键“NetworkSettings”的条目

Docker.Compose.yml文件设置
version: '2.1'

services:
webdockercoreapp:
image: webdockercoreapp
build:
context: ./WebDockerCoreApp
dockerfile: Dockerfile
ports:
- "5000:80"

networks:
default:
external:
name: nat

通过敲“ docker network ls

吼叫
NETWORK ID          NAME                       DRIVER              SCOPE
f04966f0394c nat nat local
3bcb5f906e01 none null local
680d4b4e1a0d webdockercoreapp_default nat local

当我运行“ docker network inspect webdockercoreapp_default

得到以下回应
[
{
"Name": "webdockercoreapp_default",
"Id": "680d4b4e1a0de228329986f217735e5eb35e9925fd04321569f9c9e78508ab88",
"Created": "2017-12-09T22:59:55.1558081+05:30",
"Scope": "local",
"Driver": "nat",
"EnableIPv6": false,
"IPAM": {
"Driver": "windows",
"Options": null,
"Config": [
{
"Subnet": "0.0.0.0/0",
"Gateway": "0.0.0.0"
}
]
},
"Internal": false,
"Attachable": true,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {
"com.docker.network.windowsshim.hnsid": "ad817a46-e7ff-4fc7-9bb9-d6cf17820b8a"
},
"Labels": {
"com.docker.compose.network": "default",
"com.docker.compose.project": "webdockercoreapp"
}
}
]

最佳答案

当您运行命令docker inspect --format="{{.Id}}" 7003460ebe84时-您当前正在针对镜像ID(而非容器ID)运行此命令。

图像是您构建的静态 Assets ,容器是从中运行的。因此,您需要做的是首先通过以下方式使图像在线:

docker-compose up

现在您可以通过以下方式查看正在运行的容器:
docker ps

找到您想要的容器;假设它是 abcd1234
现在,您将能够对容器而非图像运行原始命令。
docker inspect --format="{{.Id}}" abcd1234

这将返回容器的完整SHA。并且由于您最初询问的是网络设置;您将可以运行以下内容:
docker inspect -f "{{ .NetworkSettings.Networks.your_network_here.IPAddress }}" abcd1234

如果不确定网络名称是什么(看起来应该是 nat),只需执行完整的 docker inspect abcd1234并查看输出并根据需要调整过滤器即可。

关于docker - 如何在Windows Container中获取Docker IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47732972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com