Docker 容器网络与数据库连接全解析
1. 容器端口暴露与映射
在 Docker 中,在镜像里显式暴露端口并非必要,可通过 docker run 的 --expose 标志来实现此功能。它在容器层面的作用与 Dockerfile 中的 EXPOSE 选项对镜像的作用相同,且能在运行时更灵活地定义要暴露的端口列表,而非将端口固定在镜像中。将端口列表或范围传递给 --expose 可告知 Docker 要在容器上打开哪些端口。当与 -P 选项一起使用时,Docker 会像端口已在镜像中暴露一样分配端口。
以下是 --expose 和 -P 如何与当前的 Oracle 数据库镜像一起工作,打开并分配端口 1521 和 5500 的示例:
> docker run -d \
--name TEST \
--expose 1521 \
--expose 5500 \
-P oracle/database:19.3.0-ee
0d34bb1d59f85b67b90f19db16d0ab09b91ee000c81187f8847c4fe2f6c186eb
> docker ps -a \
--format "table {
{.Names}}\t{
{.Ports}}"
NAMES PORTS
TE
超级会员免费看
订阅专栏 解锁全文
1027

被折叠的 条评论
为什么被折叠?



