Docker EXPOSE 端口

2020-04-30  本文已影响0人  DouQing

先简单介绍下,Docker是一个工具,可以帮助我们快速构建一个跨平台的应用服务,可以理解为简易版的虚拟机。那如果我们想让docker帮我们构建应用服务,就得告诉它怎么做,那这样的一个操作文档就是Dockerfile, 它大概长这样:

FROM microsoft/dotnet:2.1.403-sdk-bionic AS build-env
WORKDIR /app

# copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

# build runtime image
FROM microsoft/dotnet:2.1.5-aspnetcore-runtime
WORKDIR /app
COPY --from=build-env /app/out .
EXPOSE 80
ENTRYPOINT ["dotnet", "docker101.dll"]

上面虽然有很多命令,但是大家可以先不用看,今天只是一起了解下 EXPOSE命令。

关于EXPOSE命令,我之前学习的时候遇到下面几个问题:

  1. 这样声明暴露端口就会把对应端口的服务向外公开吗?
  2. 如果我Docker中的服务端口在5000,但我在Dockerfile中声明暴露80,我的服务还能从外部访问吗?

最后经过查阅文档也得到了解答,顺便跟大家一起分享下:

docker run -p 宿主机端口:容器端口 image
docker run -p 宿主机端口:5000 image 
上一篇下一篇

猜你喜欢

热点阅读