部署.NET Core3.0至Docker容器

部署.NET Core3.0至Docker容器

  • 创建.NET Core3.0项目
  • 编写Dockerfile文件
    • Dockerfile文件说明
    • 将Dockerfile放到发布文件夹内
  • 利用PSCP上传文件至Linux
  • 根据Dockerfile构建镜像
  • 根据Dockerfile构建镜像
  • 构建容器
  • 验证发布结果
  • 停止指定容器
    • docker ps 查看所有启动的容器
    • docker stop {0} 停止指定容器,容器ID
    • 查看容器docker ps –a (可查询到未启动容器)
  • 删除指定容器
  • 删除镜像

创建.NET Core3.0项目

我们为了简化教程,就用.NET Core3.0项目自动创建的Demo去部署到Docker。
部署.NET Core3.0至Docker容器_第1张图片
创建后,直接发布项目即可,记住发布文件夹哦。

编写Dockerfile文件

Dockerfile是一个文件格式的配置文件,用户可以使用dockerfile来快速构建自定义的镜像。由一行行命令语句组成,并且支持#开头的注释行。***Dockerfile文件是没有后缀名的***
Dockerfile主题内容一般分为4部分

  • 基础镜像信息
  • 维护者信息使用label指令
  • 镜像操作指令
  • 容器启动时执行指令

Dockerfile文件说明

部署.NET Core3.0至Docker容器_第2张图片

  • FORM-指定所创建镜像的基础镜像
  • WORKDIR-配置工作目录
  • EXPOSE-声明镜像内服务监听的端口
  • COPY-复制内容到镜像
  • ENTRYPOINT-启动镜像的默认入口命令

将Dockerfile放到发布文件夹内

部署.NET Core3.0至Docker容器_第3张图片

利用PSCP上传文件至Linux

命令:pscp -r D:\LinuxByWindows\Htest [email protected]:/usr/local/docker/
格式:pscp {0} –r {1}@{2}:{3}

  • {0}:Windows文件地址,文件地址中尽量不要出现中文
  • {1}:Linux服务器用户名,如:root
  • {2}:Linux服务器地址,也就是Linux的Server IP
  • {3}:文件上传到Linux的最终地址,也就是目录
    上传Linux可参考我的博客:文件互传
    连接Linux可参考我的博客:连接Linux
    前往Linux相关文件夹查看结果:
    上传成功

根据Dockerfile构建镜像

  1. Linux进入HTest文件夹
    HTest文件夹

  2. 构建镜像命令:docker build -t hest-core-mvc .(注意后面的点)

    -t ---指定镜像名称
    命令结尾处 . ---表示build上下文为当前目录,默认情况下docker会使用在上下文的根目录下找到Dockerfile文件
    

根据Dockerfile构建镜像

命令:docker build -t hest-core-mvc .
部署.NET Core3.0至Docker容器_第4张图片

构建容器

执行命令:docker run --name hest-core-mvc -d -p 50879:80 hest-core-mvc
参数说明:

  • -d ,表示在后台以守护态(daemonized)形式运行容器
  • -p 外部端口与内部容器端口映射。
  • –name 指定容器的名称。当然可以不指定,默认会为我们创建
  • 最后一个参数 hest-core-mvc 就是我们刚创建的镜像名称
  • 通过docker ps 查看启动(status:Up)的容器 docker ps –a可以看到全部且包括未启动(status:Exited)容器,如果启动失败,如果程序发布没问题,那基本上是Dockerfile的文件,请仔细检查,尤其是copy命令和ENTRYPOINT命令

验证发布结果

部署.NET Core3.0至Docker容器_第5张图片

停止指定容器

docker ps 查看所有启动的容器

docker stop {0} 停止指定容器,容器ID

查看容器docker ps –a (可查询到未启动容器)

部署.NET Core3.0至Docker容器_第6张图片

删除指定容器

删除指令,删除名字中带htest的容器:docker rm -f $(docker ps -a | grep “htest*” | awk ‘{print $1}’)
删除指定容器

删除镜像

查看镜像:docker images
删除镜像,删除名字中有htest的镜像:
docker rmi --force `docker images | grep htest | awk ‘{print $3}’`
部署.NET Core3.0至Docker容器_第7张图片

你可能感兴趣的:(Docker,.NET,Core,Linux)