HTML5技术

升级项目到.NET Core 2.0,在Linux上安装Docker,并成功部署 - 王杰光

字号+ 作者:H5之家 来源:H5之家 2017-08-18 10:01 我要评论( )

概述 容器,顾名思义是用来存放并容纳东西的器皿; 而容器技术伴着Docker的兴起也渐渐的映入大家的眼帘,它是一个抽象的概念,同时也是默默存在世上多年的技术,不仅能使应用程序间完全的隔离,而且还能在共享底层系统资源的同时发挥它最大的优势。相比于虚

概述

容器,顾名思义是用来存放并容纳东西的器皿;

而容器技术伴着Docker的兴起也渐渐的映入大家的眼帘,它是一个抽象的概念,同时也是默默存在世上多年的技术,不仅能使应用程序间完全的隔离,而且还能在共享底层系统资源的同时发挥它最大的优势。相比于虚拟机来说,同一服务器它可以创建出两倍的实例,这样一来,不仅节省了系统开销,而且利用率和性能也得到了提升,何乐而不为。最重要的一点是还帮助开发人员实现了“一次构建,到处运行”的理想!

那么Docker又是什么呢?

  • Docker是基于Go语言开发并开源的容器引擎

  • Docker将应用软件运行时所需的一切都打包成互相隔离的容器

  • Docker可以自动执行并配置开发/线上环境,快速构建,测试和运行复杂的多容器应用程序

  • 对拥有数千个节点或容器的应用程序,Docker也能快速的扩展和调配

  • 可以运行在主流的Linux系统,Mac以及Windows上,并且保证无论软件在哪里部署,都能正常运行并得到相同的结果

  • 相关概念介绍

  • Image镜像和Container容器:你可以把两者理解为类和实例对象,或者是ISO系统镜像和虚拟机的关系。不同的Image所包含的软件或者环境是不同的,但是你可以使用Dockerfile(docker特有语法规则所创建的文件)进行管理。而Container则是以Image作为模板,可以独立运行的微型系统,一个Image可以创建出来多个Container容器的实例

  • Registry:Docker Hub镜像仓库,为每个人提供庞大的镜像资源进行拉取和使用

  • Dockerfile:是一个将镜像命令组合在一起的文件,用于Image的自动构建

  • 正文

    系统环境

    宿主机:Windows 10 专业版

    Linux服务器: Ubuntu 17.04 (GNU/Linux 4.10.0-28-generic x86_64),从16.10版本升级的,由Hyper-V管理

    软件环境

    开发工具:Visual Studio 2017 15.3(.NET Core 2.0)

    远程管理工具:Putty,基于SSH,操作简单的远程命令控制,省得你把命令给敲错咯

    SFTP客户端:WinScp,处理Linux和Windows间的文件传输

    容器:Docker 17.06.0-CE

    一、安装Docker

    a)、设置Docker仓库

    1、按惯例,首先更新Ubuntu的包索引

    $ sudo apt-get update

    2、让服务器可以使用Https更新仓库

    $ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

    3、添加Docker官方的密钥对,如果没问题,会返回“OK”

    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

    4、校验密钥(9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88)是否和官方一致

    $ sudo apt-key fingerprint 0EBFCD88

    5、设置官方稳定版的仓库来源

    $

    b)、安装Docker

    1、再次更新下包索引,因为刚才加了Docker仓库,确保是否命中了Docker源

    $ sudo apt-get update

    2、安装最新版本的Docker-CE社区版

    $ sudo apt-get install docker-ce

    3、需要安装其他版本的请使用以下命令

    $ sudo apt-get install docker-ce=1.13

    4、查看是否安装成功

    $ docker version

    5、试着运行一个测试镜像,万能的Hello World!

    $ sudo docker run hello-world

    二、.NetCore的Docker配置

    准备工作:首先记录接下来可能会用到的几个常用命令

    sudo docker pull microsoft/dotnet //从docker仓库拉取一个名称为“microsoft/dotnet”的镜像 sudo docker build light //构建一个名称为light的容器 sudo docker run hello-world //运行hello-world容器 sudo docker images //查看所有镜像 sudo docker rmi 63sf86332e //删除一个imageid的镜像 sudo docker rmi $(docker images -q) //删除所有镜像 sudo docker ps -a //查看所有容器 sudo docker rm 6f0c67de4b72 //删除一个containerid的容器 sudo docker rm $(sudo docker ps -a -q) //删除所有容器

    1、拉取dotnet-sdk的最新镜像,速度慢的话请自行搜索daocloud docker hub加速。

    sudo docker pull microsoft/dotnet:latest

    完成之后查看一下镜像

    sudo docker images

    2、进入到这个镜像,查看版本没问题后创建一个控制台程序,然后运行并查看结果

    sudo docker run -it microsoft/dotnet  //每次run,都会重新构造出新的互不影响的容器,请自行查看 dotnet --version mkdir test cd test dotnet new

    dotnet new console dotnet run //.NetCore2.0已经将dotnet restore变成了隐式命令,需要的时候会自动执行

    说明:使用Ctrl+D快捷键或者键入exit命令来退出命令

    三、升级项目到.NetCore2.0,并发布

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • .Net大局观(2).NET Core 2.0 特性介绍和使用指南 - L.P.Y

      .Net大局观(2).NET Core 2.0 特性介绍和使用指南 - L.P.Y

      2017-08-17 17:01

    • 从.net到java,记录下这三个月的工作 - _liuxx

      从.net到java,记录下这三个月的工作 - _liuxx

      2017-08-09 15:01

    • 再遇angular(angular4项目实战指南) - 大~熊

      再遇angular(angular4项目实战指南) - 大~熊

      2017-08-08 16:00

    • 一个想法照进现实-《IT连》创业项目:一个转折一个反思 - 路过秋天

      一个想法照进现实-《IT连》创业项目:一个转折一个反思 - 路过秋天

      2017-08-08 12:00

    网友点评