docker容器访问

一般我们在访问容器时需要通过容器的端口来访问, 设置容器的端口映射 才可以访问

 

可以通过 -P 或 -p 参数来指定端口映射。

 

-p(小写的)则可以指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器

 

docker run -p ip:hostPort:containerPort [--name] [-i] [-t] 镜像名 [COMMAND][ARG...]

ip:表示宿主机ip
hostPort:宿主机端口号
containerPort:容器端口号

 

支持的格式有

1.ontainerPort,指定容器端口号,宿主机端口随机生成:

docker run -p 80 --name web_test -i -t 80864d42dd23 hub.c.163.com/library/ubuntu /bin/bash

2.hostPort:containerPort映射主机端口和容器端口:

docker run -p 8080:80 --name web_test -i -t 80864d42dd23 hub.c.163.com/library/ubuntu /bin/bash

3.ip::containerPort设置主机的随机端口到容器端口:
docker run -p 0.0.0.0::80 --name web_test -i -t 80864d42dd23 hub.c.163.com/library/ubuntu /bin/bash

4.ip:hostPort:containerPort映射指定地址的指定端口到容器的指定端口
docker run -p 0.0.0.0:8080:80 --name web_test -i -t 80864d42dd23 hub.c.163.com/library/ubuntu /bin/bash

 

 例如:sudo docker run -d -p 5000:5000 training/webapp python app.py

 

当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。

使用 docker ps 可以看到,本地主机的 49155 被映射到了容器的 5000 端口。此时访问本机的 49155 端口即可访问容器内 web 应用提供的界面。

如:sudo docker run -d -P training/webapp python app.py

 

-p 标记可以多次使用来绑定多个端口
如:sudo docker run -d -p 5000:5000 -p 3000:80 training/webapp python app.py

 

docker run  -p 5001:5000 -itv  /home/may/Desktop/netcoreTest:/mnt/software/  db030c19e94b   /bin/bash

docker run  -p 5001:5000  -i  a4ddeaa13939   (直接使用探针,然后启动容器即可开始监测)

 

以上操作是通过images访问docker

如下是访问一个已经存在的container

关闭某个container通过exit,然后再进入这个container

docker start 容器名


这个时候container运行在后台,如果想进入它的终端,则:

docker attach  容器名

使用“docker attach”命令进入container(容器)有一个缺点,那就是每次从container中退出到前台时,container也跟着退出了。
要想退出container时,让container仍然在后台运行着,可以使用“docker exec -it”命令。每次使用这个命令进入container,当退出container后,container仍然在后台运行,命令使用方法如下:

docker exec -it 容器名  /bin/bash

 

docker run 参数详解:

 

 

 

docker exec -it br-server-controller bash

docker port br-server-controller

docker logs -f 容器名

给特殊权限启动要给容器,并执行一个命令
docker run --name snmp-server --privileged=true -itd snmp:latest service snmpd restart

 

启动一个容器,并将容器中 udp161端口对外暴露(目前只支持v2c)

 docker run  -it -d --name   snmp-server  --privileged=true    -p   9001:161/udp  -e EXTRA_FLAGS="--v2c-arch"  snmp:latest  /sbin/init  

posted on   yanmay  阅读(755)  评论(0编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示