在 Docker 中启动一个容器时,可以使用 `-p` 或 `--publish` 参数将容器内部的端口映射到宿主机的端口上。其中,`-p` 参数后的格式为 `<host-port>:<container-port>`,即将宿主机的端口映射到容器的端口。例如,使用 `-p 8080:8080` 将容器内的 8080 端口映射到宿主机的 8080 端口上。
内部端口指的是容器内部的端口,而外部端口则指映射到宿主机上的端口。映射端口的作用是将容器内的应用程序对外开放,使外部可以通过访问宿主机的端口来访问容器内的应用程序。
要让外部正常访问 Docker 中的容器,需要确保容器内运行的应用程序已经绑定到容器的内部IP地址和端口,而且宿主机的防火墙没有限制伺服器端口的开放。同时,还需要确保容器的网络设置正确,可以通过 `docker network inspect` 命令来查看容器网络的配置信息。若容器使用桥接网络模式,则需要通过映射端口的方式来开放容器内部的服务,使外部可以访问。如果使用了自定义的网络模式,则可以通过指定容器的 IP 地址和端口,或者使用 Docker DNS 服务来访问容器中的服务。