zoukankan      html  css  js  c++  java
  • Docker安装及部署实例.Net Core

    1.什么是Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

    2.为什么使用Docker

    使用Docker容器技术可以再全平台发布应用和服务。总所周知,.Net平台一直因为不开源以及不能跨平台诟病。小编又是一名忠实的微软粉,可是不能使用Linux作为实体服务器的.Net平台在现在分布式系统遍地,微服务纵横的天下,真的是举步维艰。还好有个Docker容器技术,解决这个问题,所以小编靠闲暇时间填了不少坑,也是部署出来了,这里跟大家分享一下。

    PS:为什么不使用其他的方式(依赖框架等)来在linux上发布.NetCore应用。一次配置全平台都可以用呀!这还用说啊,帅啊!!!!

    3.安装Docker

    安装Docker有很多方式,小编也试了好几种,但是因为国内网速的限制有些方式会很慢,甚至因为太慢暂停下载。而有些方式安装完却有很多很多的问题,这里小编也把自己遇到的坑分享给大家。

    这里给大家分享两种安装方式,实测有效。Docker分两个版本,Docker-ce和Docker-ee,后者是收费的,小编这里装ce版本。

    (1)使用yum安装    

    安装一些必要的系统工具:PS:sudo表示以管理员权限执行,如是root用户(最高权限)可不输入

    $ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

    添加软件源信息:

    $ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    更新 yum 缓存:

    $ sudo yum makecache fast

    安装 Docker-ce:

    $ sudo yum -y install docker-ce

    启动 Docker 后台服务

    $ sudo systemctl start docker

    测试运行 hello-world

    $ docker run hello-world

    (2)使用脚本安装 Docker    吃网速,网速快可选择

    确保 yum 包更新到最新。

    $ sudo yum update

    执行 Docker 安装脚本。

    $ curl -fsSL https://get.docker.com -o get-docker.sh

    $ sudo sh get-docker.sh

    启动 Docker 进程。

    $ sudo systemctl start docker

    验证 docker 是否安装成功并在容器中执行一个测试的镜像

    $ sudo docker run hello-world

    (3)Docker常用命令

    $ docker pull 镜像名                //拉取镜像,我要部署的应用可能会需要依赖一些基础镜像

    $ docker build 自定义镜像名 .                //把自己的项目编译成镜像,部署到Docker容器中,别忘了这个‘.’!!!

    $ docker images                //查看所有镜像

    $ docker run --name=容器名 -p 主机环境端口:Docker容器映射端口 -d  镜像名            //运行镜像

    $ docker ps -a                    // 查看容器运行状态,up运行成功

    $ docker logs -t -f 容器名       //查看运行日志,可以从中看到出现的问题

    4.部署.NetCore应用到Docker

    (1)新建一个 ASP.NET Core 3.0 项目

     

    然后运行一下项目,确保我们刚刚建立的项目可以正常运行

    (2)编写Dockerfile,并设置属性复制到生成文件

    FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim

    RUN cd /usr/local/src 

    RUN mkdir MyTestApi 

    WORKDIR /usr/local/src/MyTestApi

    COPY . . 

    EXPOSE 80 

    ENTRYPOINT ["dotnet", "MyTestApi.dll"] 

    (3)发布项目

     

    (4)将Dockerfile文件复制到发布成功的目录,并全部上传到服务器

     

    (5)构建Docker镜像

    进入到发布文件目录(Dockerfile文件所在目录),执行命令便可打包镜像

    $ docker pull microsoft/dotnet:3.0-aspnetcore-runtime        //拉取基础镜像

    $ docker build -t mytestapi .            //构建镜像  别忘了这个点“.”!!!

    $ docker run --name=mytestapi -p 80:80 mytestapi        //运行镜像

    出现一长串字符串,便是表示运行成功

     

    5.部署.NetCore到Docker遇到的问题

     
     

    如果更新.net core代码怎么办,使用暴力方法:

    进入目录
    cd /usr/local/src/mytestapi

    停止
    docker stop mytestapi

    删除
    docker container rm mytestapi

    编译
    docker build -t mytestapi .

    运行
    docker run --name=mytestapi -p 80:80 mytestapi

    6.总结

    到这里呐今天的内容就到此结束了,感觉大家翻阅。

  • 相关阅读:
    【java】报错could not find the main class,program will
    CSS3——阴影
    SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析
    SSO单点登录系列3:casserver端配置认证方式实践
    [转载] jQuery Mobile 开发 Web App 系列文章目录
    SHELL基本语法2
    SHELL编程基本语法
    如何写批处理文件
    LINUX shell-快速参考[一]
    Shell中的引号,反引号,双引号,反斜杠
  • 原文地址:https://www.cnblogs.com/valu/p/11596593.html
Copyright © 2011-2022 走看看