您当前的位置:首页 > 电脑百科 > 程序开发 > 容器

Docker一个优秀的应用容器

时间:2021-01-28 13:53:51  来源:  作者:

1 什么是Docker

Docker是一个用于开发,发布和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助Docker,您可以以与管理应用程序相同的方式来管理基础架构。通过利用Docker的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。

2 为什么需要Docker?

2.1 解决环境配置麻烦

一般我们写程序,会有开发环境,测试环境,生产环境,很多bug都是环境问题。

过去部署的思路,在开发环境打包,想跑到Window环境下运行。我们得先在Window下载好.NET Framework,IIS等,配置好对应的环境变量,将包丢到iis的webApps文件夹下,才能跑起来。

现在Docker的思路,可以将我们的想要的环境构建成一个镜像,然后我们可以推送到网上去。想要用这个环境的时候,在网上拉取一份就好了。

2.2 解决应用之间隔离

大家一定遇到过在多个应用部署在同一台服务器上,有一个应用出现了问题,导致CPU占100%,其他应用也都受到影响。还有就是比如有些应用用NET技术,有些应用用php技术,这些不同应用各种的依赖软件都安装在同一个服务器上,可能就会造成各种冲突/无法兼容。

2.3 Docker与虚拟机

Docker一个优秀的应用容器

 

对于虚拟机,主机服务器从下至上有三个基础层:基础架构,主机操作系统和虚拟机监控程序,最重要的是每个虚拟机都有自己的操作系统和所有必要的库。对于Docker,主机服务器仅具有基础结构和操作系统,最重要的是容器引擎,该容器引擎使容器保持隔离状态,但共享基本的OS服务。

因为容器需要的资源要少得多(例如,它们不需要完整的操作系统),所以它们易于部署并且启动迅速。这样可以提高密度,这意味着可以在同一硬件单元上运行更多服务,从而降低成本。

作为在同一内核上运行的副作用,与VM相比,您获得的隔离更少。

3 如何使用Docker?

首先,安装Docker ,参考官方文档。

然后,创建Docker.WebApi01项目

确保已选择“启用 Docker 支持”复选框,选择所需的容器类型(Windows 或 linux)。

Docker一个优秀的应用容器

 

接着,我们打开Dockerfile文件, 请参阅Dockerfile引用,了解其中的命令:

FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build
WORKDIR /src
COPY ["Docker.WebApi01/Docker.WebApi01.csproj", "Docker.WebApi01/"]
RUN dotnet restore "Docker.WebApi01/Docker.WebApi01.csproj"
COPY . .
WORKDIR "/src/Docker.WebApi01"
RUN dotnet build "Docker.WebApi01.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Docker.WebApi01.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Docker.WebApi01.dll"]

上面代码含义说明:

  • FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base:指定基础镜像文件mcr.microsoft.com/dotnet/aspnet,标记为5.0-buster-slim,别名为base。
  • WORKDIR /app:设置工作目录为/app
  • EXPOSE 80:将容器 80 端口暴露出来, 允许外部连接这个端口。
  • COPY ["Docker.WebApi01/Docker.WebApi01.csproj", "Docker.WebApi01/"]:将 Docker.WebApi01/Docker.WebApi01.csproj 复制到 Docker.WebApi01/目录下。
  • RUN dotnet restore "Docker.WebApi01/Docker.WebApi01.csproj":恢复 Docker.WebApi01.csproj 项目的依赖项和工具。
  • RUN dotnet build "Docker.WebApi01.csproj" -c Release -o /app/build:生成 Docker.WebApi01.csproj 项目及其所有依赖项。
  • RUN dotnet publish "Docker.WebApi01.csproj" -c Release -o /app/publish:将应用程序及其依赖项发布到文件夹以部署到托管系统。

接着,调试

在工具栏的调试下拉列表中选择“Docker”,然后开始调试应用。 你可能会看到提示信任证书的消息;选择信任证书以继续。

“输出” 窗口中的“容器工具” 选项显示正在进行的操作。 第一次时,可能需要一些时间来下载基本映像,但在后续运行时速度要快得多。

最后,构建及运行

docker build -t dockerwebapi01 -f ./Docker.WebApi01/Dockerfile .
docker run --rm -it -p 49181:443 dockerwebapi01

注意这里有一个坑直接在Dockerfile目录下执行会报以下错误:

=> ERROR [build 3/7] COPY [Docker.WebApi01/Docker.WebApi01.csproj, Docker.WebApi01/]

遇到这个问题有两个解决方案,其一是把Dockerfile文件放到sln同一个目录下,然后执行docker build,另一个是本文采用的方法,在sln目录下执行,需要指定Dockerfile路径

我们在浏览器上输入: https://localhost:49181/WeatherForecast 看看效果



Tags:Docker   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一、为什么要搭建主从架构呢1.数据安全,可以进行数据的备份。2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器。从而缓解数据...【详细内容】
2021-12-15  Tags: Docker  点击:(10)  评论:(0)  加入收藏
在网页中渲染公式一直是泛学术工具绕不开的一个功能,最近更新产品功能,正巧遇到了这个需求,于是使用容器方式简单实现了一个相对靠谱的公式渲染服务。分享出来,希望能够帮到有类...【详细内容】
2021-12-01  Tags: Docker  点击:(10)  评论:(0)  加入收藏
1.1 docker命令直接部署1.1.1 拉取镜像docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafka1.1.2 启动zookeeper容器docker run -d --name myzookeeper -p 2...【详细内容】
2021-11-15  Tags: Docker  点击:(47)  评论:(0)  加入收藏
01 前言 顺着docker的发展,很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试,这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以...【详细内容】
2021-10-29  Tags: Docker  点击:(42)  评论:(0)  加入收藏
因为你懂得的原因,下载docker镜像速度非常喜感,故收集几个国内常用的docker镜像。Docker中国区官方镜像地址:https://registry.docker-cn.com网易163的镜像http://hub-mirror.c...【详细内容】
2021-10-28  Tags: Docker  点击:(48)  评论:(0)  加入收藏
我们在很多场景下都需要做笔记,来对抗遗忘,一份好的笔记不仅能在需要的时候供我们查阅,也能帮助我们归纳整理知识提高做事效率。 目前市面上有很多云笔记软件,体验上各有不同,但...【详细内容】
2021-10-11  Tags: Docker  点击:(61)  评论:(0)  加入收藏
1. Nacos官网Nacos Docker 快速开始2. Clone 项目git clone https://github.com/nacos-group/nacos-docker.git3. cd 到nacos-docker 路径下 直接启动即可cd nacos-dockerdo...【详细内容】
2021-09-16  Tags: Docker  点击:(109)  评论:(0)  加入收藏
今天不做保姆级教程,分享奶爸常用、好用的Docker应用。有了这些Docker,Nas的可玩性会大幅提高,有时候奶爸也在想,刨去官方套件不考虑的话,Nas真的是差不多。如果小伙伴们有需要,后...【详细内容】
2021-09-03  Tags: Docker  点击:(167)  评论:(0)  加入收藏
环境要求 ubuntu系统:20.04 docker版本:20.10.7 redis版本:6.0.6步骤由于我这里已经有相应的redis镜像,这里就不记录了,关于docker一些基础知识可以看我以前的笔记开启3台re...【详细内容】
2021-07-26  Tags: Docker  点击:(117)  评论:(0)  加入收藏
今天在虚拟机里面安装了docker,利用docker起了一个centos。里面配置完成openssh后,利用xsheel连接docker里面的centos,发现特别慢,差不多要的1分钟才能连接上去。这肯定是有问题...【详细内容】
2021-07-21  Tags: Docker  点击:(131)  评论:(0)  加入收藏
▌简易百科推荐
一、为什么要搭建主从架构呢1.数据安全,可以进行数据的备份。2.读写分离,大部分的业务系统来说都是读数据多,写数据少,当访问压力过大时,可以把读请求给到从服务器。从而缓解数据...【详细内容】
2021-12-15  实战Java    Tags:Docker   点击:(10)  评论:(0)  加入收藏
在网页中渲染公式一直是泛学术工具绕不开的一个功能,最近更新产品功能,正巧遇到了这个需求,于是使用容器方式简单实现了一个相对靠谱的公式渲染服务。分享出来,希望能够帮到有类...【详细内容】
2021-12-01  编程菌zfn    Tags:Docker   点击:(10)  评论:(0)  加入收藏
1.1 docker命令直接部署1.1.1 拉取镜像docker pull wurstmeister/zookeeperdocker pull wurstmeister/kafka1.1.2 启动zookeeper容器docker run -d --name myzookeeper -p 2...【详细内容】
2021-11-15  无    Tags:docker   点击:(47)  评论:(0)  加入收藏
01 前言 顺着docker的发展,很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试,这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以...【详细内容】
2021-10-29  小码哥聊软件测试    Tags:Docker   点击:(42)  评论:(0)  加入收藏
因为你懂得的原因,下载docker镜像速度非常喜感,故收集几个国内常用的docker镜像。Docker中国区官方镜像地址:https://registry.docker-cn.com网易163的镜像http://hub-mirror.c...【详细内容】
2021-10-28  抓蛙程序猿    Tags:docker   点击:(48)  评论:(0)  加入收藏
环境:Spring5.3.10通常,应用程序开发人员不需要对ApplicationContext实现类进行子类化。相反,SpringIOC容器可以通过插入特殊集成接口的实现来扩展。使用BeanPostProcessor自定...【详细内容】
2021-10-26  Java网络研发架构师    Tags:Spring   点击:(33)  评论:(0)  加入收藏
我们在很多场景下都需要做笔记,来对抗遗忘,一份好的笔记不仅能在需要的时候供我们查阅,也能帮助我们归纳整理知识提高做事效率。 目前市面上有很多云笔记软件,体验上各有不同,但...【详细内容】
2021-10-11  运维贼船    Tags:docker   点击:(61)  评论:(0)  加入收藏
1. Nacos官网Nacos Docker 快速开始2. Clone 项目git clone https://github.com/nacos-group/nacos-docker.git3. cd 到nacos-docker 路径下 直接启动即可cd nacos-dockerdo...【详细内容】
2021-09-16  程序狗爱化妆    Tags:Nacos   点击:(109)  评论:(0)  加入收藏
今天不做保姆级教程,分享奶爸常用、好用的Docker应用。有了这些Docker,Nas的可玩性会大幅提高,有时候奶爸也在想,刨去官方套件不考虑的话,Nas真的是差不多。如果小伙伴们有需要,后...【详细内容】
2021-09-03  晋升奶爸的垃圾佬    Tags:Docker   点击:(167)  评论:(0)  加入收藏
环境要求 ubuntu系统:20.04 docker版本:20.10.7 redis版本:6.0.6步骤由于我这里已经有相应的redis镜像,这里就不记录了,关于docker一些基础知识可以看我以前的笔记开启3台re...【详细内容】
2021-07-26  石老师小跟班    Tags:Redis主从复制   点击:(117)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条