The*_*boy 8 grep sed docker dockerfile
假设我使用以下命令启动一个 docker 容器
docker run -d --name my-container -p 1234 my-image
Run Code Online (Sandbox Code Playgroud)
运行docker ps
显示该图像的端口绑定是...
80/tcp, 443 /tcp. 0.0.0.0:32768->1234/tcp
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以用来docker inspect
获取分配要映射到的端口1234
(在本例中为 32768)?
类似于使用以下命令解析并获取IP地址......
IP=$(docker inspect -f "{{ .Networksettings.IPAddress }} my-container)
Run Code Online (Sandbox Code Playgroud)
我希望能够做类似以下的事情
ASSIGNED_PORT=$(docker inspect -f "{{...}} my-container)
Run Code Online (Sandbox Code Playgroud)
我不确定是否有办法通过 Docker 来做到这一点,但我想有一些命令行魔法(grep、sed 等)可以让我做这样的事情。
当我跑步docker inspect my-container
并查看NetworkSettings
......我看到以下内容
"NetworkSettings": {
...
...
...
"Ports": {
"1234/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "32768"
}
],
"443/tcp": null,
"80/tcp": null
},
...
...
},
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我希望它能够找到 HostPort,而无需我告诉它任何有关端口 1234 的信息(它应该忽略其下面的 443 和 80)并返回32768
.
执行命令:docker inspect --format="{{json .Config.ExposedPorts }}" src_python_1
结果:{"8000/tcp":{}}
证明(使用docker ps
):
e5e917b59e15 src_python:latest "start-server" 22 hours ago Up 22 hours 0.0.0.0:8000->8000/tcp src_python_1
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19243 次 |
最近记录: |