部署.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。

创建后,直接发布项目即可,记住发布文件夹哦。
编写Dockerfile文件
Dockerfile是一个文件格式的配置文件,用户可以使用dockerfile来快速构建自定义的镜像。由一行行命令语句组成,并且支持#开头的注释行。***Dockerfile文件是没有后缀名的***
Dockerfile主题内容一般分为4部分
- 基础镜像信息
- 维护者信息使用label指令
- 镜像操作指令
- 容器启动时执行指令
Dockerfile文件说明

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

利用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构建镜像
-
Linux进入HTest文件夹

-
构建镜像命令:docker build -t hest-core-mvc .(注意后面的点)
-t ---指定镜像名称
命令结尾处 . ---表示build上下文为当前目录,默认情况下docker会使用在上下文的根目录下找到Dockerfile文件
根据Dockerfile构建镜像
命令:docker build -t hest-core-mvc .

构建容器
执行命令: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命令
验证发布结果

停止指定容器
docker ps 查看所有启动的容器
docker stop {0} 停止指定容器,容器ID
查看容器docker ps –a (可查询到未启动容器)

删除指定容器
删除指令,删除名字中带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}’`
