189 8069 5689

Docker基础入门以及示例分析

这篇文章将为大家详细讲解有关Docker基础入门以及示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

10年的和政网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整和政建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“和政网站设计”,“和政网站推广”以来,每个客户项目都认真落实执行。

一. 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会默认包含两个引擎containers(linux和windows)

1. 下载Docker for Windows,https://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虚拟机:

Docker基础入门以及示例分析

我们也可以通过PowerShell查看Docker版本:

Docker基础入门以及示例分析

安装成功之后我们就可以对其进行相应的设置

1. 右击小鲸鱼图标(这里我直接找的网上的图),点击Settings

 Docker基础入门以及示例分析

2. 设置界面如下,其中Shared Drives 可以设置我们的对应映射驱动盘,保证C盘选中,再选中你应用所在盘符。Advanced选项中你可以设置docker对应的CPU,内存占用资源。Netword主要是当前的Docker IP信息。Proxies可以设置对应的代理信息。Daemon 主要是设置对应的仓储和对应的仓储镜像站点(和docker镜像区分开,这个是仓储对应的镜像,因为访问国外站点过慢,可以设置国内的镜像代理站点)。

Docker基础入门以及示例分析

 这里特别强调一下,因为访问Docker官网仓储站点拉取镜像过慢,请自行购买VPN服务,或者查找仓储代理站点,国内的网易,DaoCloud都有对应的免费加速器,这里是我的设置:

Docker基础入门以及示例分析

3. 上边说了,Docker for Windows 提供了两个引擎,我们可以通过右键菜单中的 Switch to Windows Containers 功能进行切换。

4.  同时Docker for Windows 提供了容器的界面管理工具,可以通过右键菜单中的 Kitematic 功能进入,第一次可能提示你需要下载安装,其界面如下:

Docker基础入门以及示例分析

3.docker stop:停止容器运行
  4.docker start:开始容器运行
  5.docker commit:提交容器到镜像
  6.docker images: 查看当前有的镜像

Docker基础入门以及示例分析

8. docker build : 创建镜像

9. docker load : 加载镜像

上边这几个是docker的主要命令,先行解释一下,后边我们会用到。

四.使用vs2017在docker下调试

这里我以一个.net core 站点示例,启用2017中的docker调试功能,如果是已经存在的项目,右键=》添加=》增加Docker支持即可

1.  新建websample站点

Docker基础入门以及示例分析

这个文件就是docker打包时需要的一个docker命令文件,vs中内部整合docker-compose和docker命令,完成了镜像生成和容器的创建

Docker基础入门以及示例分析

你会发现调试模块已经是docker了,如果想回到正常以前的项目,删除解决方案下自动生成的 docker-compose 项目即可。

我们启动调试,这个时候如果我们打开 Kitematic 会发现我们的websample容器已经创建了,并且自动添加了dev的标签,如下图:

Docker基础入门以及示例分析

五. 打包一个.net core站点镜像

这里我使用刚才创建的.net core站点,演示一下我们完成站点开发之后,不使用vs的情况,如何通过命令完成一个镜像的打包。

1. 发布刚才的站点到指定文件夹下

2. 进入发布后的文件夹,修改docker文件

查看docker文件是否存在,如果不存在直接把项目中的复制过来,并修改内容如下

FROM microsoft/aspnetcore:1.0

WORKDIR /app
COPY . /app 
EXPOSE 80

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

      a.  使用microsoft/aspnetcore 作为基础镜像

b. 制定容器的工作目录

c. 复制当前项目文件到容器的app目录下

d. 设置容器对外暴露80端口

e. 启动命令,执行websample.dll 

3. 构建镜像 

进入文件目录,执行命令 docker build -t websample:latest .   (后边的点是需要的

Docker基础入门以及示例分析

   4. 运行当前镜像

镜像创建完成之后,我们就可以通过镜像创建对应的运行容器了, 执行如下命令: docker run -it -p 8000:80 websample:latest

 Docker基础入门以及示例分析

可以看到我们的容器已经运行起来了,我们访问 127.0.0.1:8000

关于Docker基础入门以及示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网站栏目:Docker基础入门以及示例分析
文章位置:http://jkwzsj.com/article/joodjh.html

其他资讯