如何将dotnet core webapi发布到docker中…

lilygg 2020-04-23

如何将dotnet core webapi发布到docker中

今天想起来撸一下docker,中途还是遇到些问题,但是这些问题都是由于路径什么的导致不正确,在这儿还是记录下操作过程,今天是基于windows来操作docker,先把windows搞定,后面再去Linux上搞docker。

1、前提条件

  • Win10系统,不能是家庭版,并且需要开启Hyper-V
  • 官网下载并安装:docker desktop for window
  • 注册一个docker hub的账号,用于后面可以把镜像推送到在线仓库中
  • 本地dotnet core开发环境

2、安装docker

  • 下载docker desktop后直接根据提示进行安装
  • 安装完成之后,打开CMD命令框,输入docker --version 能看到版本号就说明安装成功了
  • 如何将dotnet core webapi发布到docker中… 
  • 登录dockerhub账号:docker login回车根据提示输入你的账号密码即可
  • cmd输入:docker run hello-world 拉取镜像并且运行一个容器
  • 如何将dotnet core webapi发布到docker中…
  • cmd输入:docker image ls 查看镜像列表
  • 如何将dotnet core webapi发布到docker中…
  • cmd输入:docker container ls 查看运行的容器列表
  • CMD输入:**docker --help** 可以查看docker命令的帮助信息

3、创建WebApi,编译发布到指定目录

        如何将dotnet core webapi发布到docker中…

4、在WebApi发布目录中建立DockerFile文件,添加如下内容

# 基于microsoft/dotnet:latest构建Docker Image
# FROM microsoft/dotnet:latest
# FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-nanoserver-1903
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-nanoserver-1903

# 将publish下的所有文件拷贝到工作目录
COPY *.* ./

# 端口
EXPOSE 5000

# 启动webapi
CMD ["dotnet", "WebApi.dll"]

5、CMD进入WebApi发布目录,构建WebApi镜像,并启动容器

  • CMD输入命令:docker image build -t yazid2020/test_webapi:1.0.1 .
  • 如何将dotnet core webapi发布到docker中…
  • 如何将dotnet core webapi发布到docker中…
  • 启动容器:docker run -it -p 8089:5000 yazid2020/test_webapi:1.0.1
  • 如何将dotnet core webapi发布到docker中…
  • 然后去访问接口,能看到已经能得到响应了
  • 如何将dotnet core webapi发布到docker中…

6、将镜像推送到docker hub中

  • 在docker hub中先建立一个Repository镜像仓储【yazid2020/test_webapi】
  • 如何将dotnet core webapi发布到docker中…
  • 将镜像推送到仓储:docker push yazid2020/test_webapi:1.0.1,这里可能会提示未登录,使用docker login登录即可
  • 如何将dotnet core webapi发布到docker中…
  • 到这里就完成了将core webapi发布到docker中,并且将镜像推送到在线仓储,以后再次使用这个镜像时,直接拉取运行即可
  • 如何将dotnet core webapi发布到docker中…
docker pull yazid2020/test_webapi:1.0.1
    docker run -it -p 8089:5000 yazid2020/test_webapi:1.0.1
    # -it:表示需要提供一个模拟的shell环境
    # -p 8089:5000:表示将DockerContainer的5000端口映射到主机环境的8089端口不完善,或者还可以改进的地方可以给我留言,感谢!

相关推荐