docker是什么? Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2。0协议开源。 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。 为什么要用docker? 在没有用docker之前,我们需要在本地,测试,线上部署相同的环境,相同的软件每个环境都要安装一次,并且每来一个新同事,相同的环境有要重新安装一遍,很麻烦且过于重复。docker可以完美的解决这个问题用docker之后我们只需要在本地,测试,线上分别安装相同的docker,然后在本地搭建环境,将搭建好的环境容器生成docker镜像,只要将这个docker镜像提供给测试和线上即可构建出相同的环境,在代码部署上我们可以利用docker数据卷将本地项目目录文件直接挂载到测试环境中 docker在windows上的安装 DockerforWindows是一个DockerCommunityEdition(CE)应用程序。DockerforWindows安装包包含了在Windows系统上运行Docker所需的一切。如果你不想装虚拟机,想直接在你的Windows操作系统中安装与学习使用docker,那么你首先得查看你的系统是否满足DockerforWindows的安装与使用要求。 1。DockerforWindows的当前版本运行在64位Windows10Pro,专业版、企业版和教育版(1607年纪念更新,版本14393或更高版本)上。Ps:家庭版是不行的,如果你是家庭版,那么一是升级到专业版,破解专业版推荐个地址:http:blog。csdn。netSONGCHUNHONGarticledetails78006389,二是安装DockerToolbox,自行网上百度http:blog。csdn。nettinattlarticledetails51372604 2。如果你满足DockerforWindows的环境条件了,那么首先检查电脑的虚拟化开启了没有:进入任务管理器(ctrlaltdelete),点击性能cpu,查看虚拟化是否已启用,如果虚拟化是已禁用,那么你需要重启电脑进入bios开启虚拟化(我们的发的笔记本cpu都是支持虚拟化的,重启时进入bios按esc再按f12去开启虚拟化) 3。开启虚拟化重启后,进入任务管理器看虚拟化是否已启用。 4。然后再是进入电脑的控制面板程序启用或关闭Windows功能把Hyperv勾上,启用后电脑会重启,后面就可以下载并安装DockerforWindows了。 docker在mac上的安装 在docker官网上我们可以直接下载DockerDesktop(Mac)可直接在https:hub。docker。comeditionscommunitydockercedesktopmac下载(需要登录),下载后双击执行docker。dmg正常安装即可启动docker后在系统菜单栏我们可以看到docker标志,说明docker安装成功 docker镜像加速 参考http:guide。daocloud。iodcsdaocloud9153151。htmldockertoolbox设置镜像加速 docker基本命令列出本地已有镜像dockerimages从远端下载镜像dockerpullimagename使用镜像创建并启动一个容器(若本地没有该镜像,则会先从远端下载,每次run都会生成一个容器,嗯,轻量)dockerrunhub。c。163。comlibraryhelloworld:latest列出正在运行的容器dockerps列出所有容器(包括Exited)dockerpsa启动指定的容器dockerstartcontainerid停止指定的容器dockerstopcontainerid停止所有运行中的容器dockerstop(dockerpsq)删除指定容器dockerrmcontainerid删除所有容器dockerrm(dockerpsaq)停止并删除容器dockerstop(dockerpsq)dockerrm(dockerpsaq)删除指定镜像(删除镜像前须先停止并删除容器)dockerrmiimageid重启容器dockerrestartcontainerid创建一个新的容器并运行一个命令dockerrun〔OPTIONS〕IMAGE〔COMMAND〕〔ARG。。。〕astdin:指定标准输入输出内容类型,可选STDINSTDOUTSTDERR三项;d:后台运行容器,并返回容器ID;i:以交互模式运行容器,通常与t同时使用;p:端口映射,格式为:主机(宿主)端口:容器端口t:为容器重新分配一个伪输入终端,通常与i同时使用;namenginxlb:为容器指定一个名称;dns8。8。8。8:指定容器使用的DNS服务器,默认和宿主一致;dnssearchexample。com:指定容器DNS搜索域名,默认和宿主一致;hmars:指定容器的eusernameritchie:设置环境变量;envfile:从指定文件读入环境变量;cpuset02orcpuset0,1,2:绑定容器到指定CPU运行;m:设置容器使用内存最大值;netbridge:指定容器的网络连接类型,支持bridgehostnonecontainer:四种类型;link:添加链接到另一个容器;expose:开放一个端口或一组端口; 交互运行dockerrunitcentosbinbashbinbash是进入到linux中命令行进入容器dockerexecitcentosbinbash容器拷贝到主机dockercpcontainerid:文件路径主机目标路径主机拷贝到容器dockercp主机文件路径containerid:文件路径查看容器IPdockerinspectf{{。NetworkSettings。IPAddress}}centos win7上文件以数据卷的形式挂载到docker容器中 1。先设置win7到VirtualBox中docker用的那个虚拟机的共享文件夹 填写好共享文件夹路径和名称。如:共享文件夹路径:E:共享文件夹名称:e 然后勾选自动挂载和固定分配 2。重启docker 3。dockerrunitvtest:varwwwmyimagebinbash 制作镜像 在上面的镜像容器中我们可以搭建自己所需要的各种环境,搭建好后可将这个更改后的容器打包成一个镜像,并上传到镜像仓库供大家使用 在搭建好环境的容器中退出时我们应当使用ctrlpq快捷键,而不是exit退出,因为这样直接退出会关闭当前容器 dockercommit:从容器创建一个新的镜像。dockercommitanamemthisisprofilecontaineridimageName 这里以阿里云为例,将镜像推送到Registrysudodockerloginusernamejesse131registry。cnshenzhen。aliyuncs。comsudodockertag〔ImageId〕registry。cnshenzhen。aliyuncs。commirrorstudystudy:〔镜像版本号〕sudodockerpushregistry。cnshenzhen。aliyuncs。commirrorstudystudy:〔镜像版本号〕 从网上拉取上传的镜像sudodockerpullregistry。cnshenzhen。aliyuncs。commirrorstudystudy:〔镜像版本号〕 如果不想通过网络拉去镜像也可以通过U盘拷贝镜像 导出镜像到本地dockersavecontaineridod:wwwcentos。tar 加载本地镜像dockerloadid:wwwcentos。tar 在PowerShell中设置tab键自动补全(其实用的都是cmd。exe) 启动一个的PowerShell(即以管理员身份运行)。搜索PowerShell,右键单击,然后选择以管理员身份运行。在PowerShell提示符下键入:SetExecutionPolicyRemoteSigned 检查策略设置是否正确,运行:getexecutionpolicy应该返回RemoteSigned。 安装poshdockerPowerShell模块以自动完成Docker命令,键入:InstallModuleposhdocker或者,要仅为当前用户安装模块,键入:InstallModuleScopeCurrentUserposhdocker 安装完成后,只能为当前PowerShell启用自动完成功能,输入:ImportModuleposhdocker 为了在所有PowerShell会话中保持Tab完成状态PROFILE,请在PowerShell提示符处输入:if(Not(TestPathPROFILE)){NewItemPROFILETypeFileForce}AddContentPROFILEnImportModuleposhdocker 这将创建一个PROFILE如果不存在,并将此行添加到文件中: ImportModuleposhdocker 要检查文件是否已正确创建,或只需手动编辑,请在PowerShell中键入以下内容: NotepadPROFILE 打开一个新的PowerShell会话。现在,当你键入的前几个字母后按Tab键,Docker命令(如开始,停止,运行及其选项)以及容器和映像名称现在都应该自动完成。 了解集群 swarm是运行Docker并加入到一个集群中的一组机器。但是现在它们将由群集管理器在群集上执行。群体中的机器可以是物理的或虚拟的。加入群体后,他们被称为节点。 Swarm管理人员可以使用多种策略来运行容器,比如最空的节点(emptiestnode)它使用容器填充最少使用的机器。或全局,这确保了每台机器只能得到指定容器的一个实例。您可以指示swarmmanager在Compose文件中使用这些策略。 群体管理者是群体中唯一可以执行你的命令的机器,或者授权其他机器作为工作者加入群体。工人提供能力,并没有权力告诉任何其他机器可以做什么和不可以做什么。 到目前为止,之前都是在本地机器上以单主机模式使用Docker。但是Docker也可以切换到群集模式,这就是使用群集的原因。启用群模式使当前机器成为群管理器。则Docker将运行您正在管理的群集上执行的命令,而不仅仅是在当前的机器上。