docker部署Asp.net core应用的完整步骤

使用Docker前我们首先要简单了解一下容器的概念。MSDN上有一张虚拟机和容器的对比图,很好的展示了虚拟机和容器的区别,如下所示,虚拟机包括应用程序、必需的库或二进制文件以及完整的来宾操作系统,每台虚拟机都有一个单独的内核,我们完全可以把虚拟机看做是一台真实的物理机。容器包括应用程序及其所有依赖项,与其他容器共享 OS 内核,容器在主机操作系统上作为独立进程运行,我们可以把容器看做是一个应用沙盒。

我们经常会遇到“我机器上可以运行”的问题吧,然后部署到其他机器时就遇到了各种坑,这多是因为其他设备上缺少应用所需的环境或者缺少应用的依赖项造成的。使用容器技术可以很好的解决这个问题,容器是一个“应用的沙盒”,这个沙盒内部包含了应用所需的环境和所有依赖项,只要有这个沙盒存在,应用在任何环境下都能正常的运行,容器技术的典型特点就是“一次封装,到处运行”。

docker部署Asp.net core应用的完整步骤

docker部署Asp.net core应用的完整步骤

Docker 是一个使用go语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。我们先了解Docker中的三个核心概念:

1 镜像(Image)

 镜像是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。

2 容器(Container)

 容器是镜像的运行时实例 ,执行镜像时内存中运行的就是容器。如果把镜像看做面向对象中的类,容器就是对象。使用类时通过new来获取一个对象,类似的使用镜像时通过 docker run <镜像名/镜像id>创建一个容器。

3 仓库(Repository)

 仓库时用来存放镜像的地方,Docker hub是docker官方提供的仓库,类似于githhub,,通过push推送镜像到仓库,通过pull命令拉取镜像。当然我们也可以使用其他仓库,或者自己搭建一个仓库。

2安装docker  1 Windows安装docker

docker是运行在Linux系统上的,在Windows上使用docker默认要用到Hyper-V功能,所以我们在Windows系统上安装Docker必须先开启Hyper-V功能。首先打开【控制面板】,找到【启动或关闭Windows功能】,然后勾选【Hyper-V】,点击确定即可安装Hyper-V。

docker部署Asp.net core应用的完整步骤

安装好Hyper-V后,到docker官网下载Windows版本的docker,docker需要登录账户才能下载,我们可以创建一个账户,牢记这个账号,我们以后会经常用到。docke下载地址:docker下载。下载完成后,双击安装包,一路next即可。安装完成后需要重启电脑,打开命令行,输入docker run hello-world,如果出现以下界面,表示docker已经安装成功了。docker run hello-world命令首先会在本地找名字为hello-world的镜像,如果本地不存在这个镜像就会从docker hub上拉取hello-world镜像,然后运行。

docker部署Asp.net core应用的完整步骤

2 Centos安装docker

Linux系统安装常用软件都十分方便,执行下边的命令即可安装docker

#删除旧版本 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine #安装一些需要的工具 yum install -y yum-utils device-mapper-persistent-data lvm2 #添加软件源信息 sudo yum-config-manager --add-repo #更新yum缓存 yum makecache fast #安装docker yum -y install docker-ce #启动docker服务 systemctl start docker #测试docker docker run hello-world

安装完成后执行docker run hello-world命令,如果出现下边的界面表示docker安装成功了

docker部署Asp.net core应用的完整步骤

3 Docker基本使用 1 使用官方docker实例

可以查看官方教程详细地了解docker的使用,这里我们先用两分钟分钟展示一下微软官方提供的docker栗子,执行命令docker run -p 8000:80 --name aspnetcore_sample mcr.microsoft.com/dotnet/core/samples:aspnetapp,-p 8000:80表示将服务器的8000端口和容器的80端口建立映射,访问服务器8000端口时会去访问容器的80端口。--name设置镜像的名字

docker部署Asp.net core应用的完整步骤

打开浏览器,访问虚拟机的8000端口如下,说明我们的容器已经成功启动了!

docker部署Asp.net core应用的完整步骤

我们使用docker images和docker container ls查看一下本机的容器和镜像,结果如下:

docker部署Asp.net core应用的完整步骤

2 Docker常用命令

其实我们实际开发中能用到的docker命令并不多,这里简单汇总一下最常用的docker命令。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wdsgwg.html