电子商务网站建设方面的论文,可信网站图标 费流量,深圳 网站,seo顾问达人Docker近几年的发展可谓一日千里#xff0c;特别从是2013年随着一个基于LXC的高级容器引擎开源#xff0c;到现在#xff0c;其在linux和windows上都有了很好的支持#xff0c;并且已经有很多公司将docker用于实际的生产环境部署当中。这篇文章我将针对以下几个方面简单介绍… Docker近几年的发展可谓一日千里特别从是2013年随着一个基于LXC的高级容器引擎开源到现在其在linux和windows上都有了很好的支持并且已经有很多公司将docker用于实际的生产环境部署当中。这篇文章我将针对以下几个方面简单介绍 1. docker的基础介绍 2. docker在windows下的安装配置 3. 基础命令介绍 4. 使用vs2017在docker下调试 5. 打包一个.net core站点镜像 一. docker基础介绍 可能很多朋友对docker还停留在听说过并没有认真关注了解过这里简单介绍下其基础部分知识。如有不足欢迎指正 1. docker介绍 很多同学有一个先入为主的概念docker是一个轻量级容器。所以这里先普及一下docker本身并不是一个容器而是一个管理容器的引擎工具。它包含一个服务端和客户端服务端是一个管理着所有容器和文件系统的服务进程客户端则是一个服务端的控制器用来控制docker的服务端进程。至于容器主要指的是包含了一些特定应用的运行实例既保证了当前应用的运行环境独立又能保证容器相互之间的独立。 一款产品从开发到上线从操作系统到运行环境再到应用配置。作为开发者我们需要关心很多东西这也是很多互联网公司都不得不面对的问题特别是各种版本的迭代之后不同版本环境的兼容对运维人员都是考验。Docker之所以发展如此迅速也是因为它对此给出了一个标准化的解决方案。 Docker提供了一套虚拟化和文件系统的支持可以让专业人员自由组装需要的运行环境到容器中并提供容器运行时的隔离。就像一个大型油轮承载着一个个集装箱每个集装箱我们可以理解为我们的容器这个容器中的内容完全由组装人员自定义。 2. docker基础概念 docker本身是一个容器运行载体一个容器的运行需要正确的理解仓储镜像和容器这几个概念。 如上介绍容器一个运行实例那么当前实例是如何部署的就明白的镜像的意义了。镜像就是一个已经打包好的可交付的运行环境当我们需要的时候就可以通过docker客户端创建一个对应的运行实例也就是我们的容器。至于仓储就是放了一堆镜像的地方我们可以把镜像发布到仓储中需要的时候从仓储中拉下来就可以了。 3. docker基础使用 以web应为为例我们开发完成之后将应用打包成镜像发布到自己的仓储服务器或者直接上传到服务器中服务器拉取或者加载镜像设置对应的端口映射并启动容器。如果我们存在多个web容器也可以通过negix在前方负载代理。在后边我会通过一个.net core站点做一个简单的示例。当然也有很多持续集成方案比如代码提交之后自动生成镜像部署这里就先不做介绍了。 二. docker在windows下的安装和配置 这里我介绍下在windows中安装Docker以及相关的配置信息。当前Docker for Windows会默认包含两个引擎containerslinux和windows 1. 下载Docker for Windowshttps://docs.docker.com/docker-for-windows/install/#download-docker-for-windows 2. 查看下是否开启了Hyper-V功能如果没有可以在“启用或关闭windows功能” 中添加Hyper-V 功能当然你也可以不用关心docker安装过程中也会检查如果没有则默认添加启动不过可以趁着等待下载docker的时间直接把这步做了安装Hyper-V之后可能需要重启系统。 3. 安装完成之后你可以查看Hyper-V管理器如果安装正常会如下默认创建一个linux虚拟机 我们也可以通过PowerShell查看Docker版本 安装成功之后我们就可以对其进行相应的设置 1. 右击小鲸鱼图标这里我直接找的网上的图点击Settings 2. 设置界面如下其中Shared Drives 可以设置我们的对应映射驱动盘保证C盘选中再选中你应用所在盘符。Advanced选项中你可以设置docker对应的CPU内存占用资源。Netword主要是当前的Docker IP信息。Proxies可以设置对应的代理信息。Daemon 主要是设置对应的仓储和对应的仓储镜像站点和docker镜像区分开这个是仓储对应的镜像因为访问国外站点过慢可以设置国内的镜像代理站点。 这里特别强调一下因为访问Docker官网仓储站点拉取镜像过慢请自行购买VPN服务或者查找仓储代理站点国内的网易DaoCloud都有对应的免费加速器这里是我的设置: 3. 上边说了Docker for Windows 提供了两个引擎我们可以通过右键菜单中的 Switch to Windows Containers 功能进行切换。 4. 同时Docker for Windows 提供了容器的界面管理工具可以通过右键菜单中的 Kitematic 功能进入第一次可能提示你需要下载安装其界面如下 三. Docker的基础命令 安装设置完成之后我们可以通过以下命令来进行操作docker了我这里主要是在PowerShell中进行也可以通过命令行cmd进行 1. docker pull: 从仓库中拖镜像 2. docker run运行容器如果当前要运行的容器对应镜像不存在会自动拉取。例如docker run hello-world 3.docker stop停止容器运行 4.docker start开始容器运行 5.docker commit提交容器到镜像 6.docker images: 查看当前有的镜像 7.docker ps查看当前启动的容器 8. docker build : 创建镜像 9. docker load : 加载镜像
上边这几个是docker的主要命令先行解释一下后边我们会用到。 四.使用vs2017在docker下调试
这里我以一个.net core 站点示例启用2017中的docker调试功能如果是已经存在的项目右键》添加》增加Docker支持即可
1. 新建websample站点 2. dockerfile 文件介绍 当项目创建完成在项目文件中你可以看到一个dockerfile文件内容如下 这个文件就是docker打包时需要的一个docker命令文件vs中内部整合docker-compose和docker命令完成了镜像生成和容器的创建 你会发现调试模块已经是docker了如果想回到正常以前的项目删除解决方案下自动生成的 docker-compose 项目即可。
我们启动调试这个时候如果我们打开 Kitematic 会发现我们的websample容器已经创建了并且自动添加了dev的标签如下图 五. 打包一个.net core站点镜像 这里我使用刚才创建的.net core站点演示一下我们完成站点开发之后不使用vs的情况如何通过命令完成一个镜像的打包。 1. 发布刚才的站点到指定文件夹下 2. 进入发布后的文件夹修改docker文件 查看docker文件是否存在如果不存在直接把项目中的复制过来并修改内容如下 FROM microsoft/aspnetcore:1.0 WORKDIR /appCOPY . /app EXPOSE 80 ENTRYPOINT [dotnet, websample.dll] a. 使用microsoft/aspnetcore 作为基础镜像 b. 制定容器的工作目录 c. 复制当前项目文件到容器的app目录下 d. 设置容器对外暴露80端口 e. 启动命令执行websample.dll 3. 构建镜像 进入文件目录执行命令 docker build -t websample:latest . (后边的点是需要的 4. 运行当前镜像 镜像创建完成之后我们就可以通过镜像创建对应的运行容器了 执行如下命令 docker run -it -p 8000:80 websample:latest 可以看到我们的容器已经运行起来了我们访问 127.0.0.1:8000 至此我们已经尝试了docker的基础功能希望本文能够对你有所帮助。
同时我最近正在开发OSS系列开源项目现在已有OSS.Common,OSS.Http, OSS.Social 和 OSS.PayCenter 几个项目如果你也有兴趣请联系我或者关注公众号OSSCoder
原文地址http://www.cnblogs.com/osscoder/p/6553733.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注