1.docker的三个概念1.1镜像(镜像):Docker镜像可以看成是一个特殊的文件系统,除了提供容器运行时所需的程序、库和资源外、配置等文件,其中还包含一些为运行时准备的配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,构建后内容不会改变。1.2容器(container)为所有镜像层增加一个可写层。这个可写层有运行在CPU上的进程,有两种不同的状态:Running和Exited。这是Docker容器。当我们使用dockerrun启动容器时,Docker容器进入running状态,当我们停止Docker容器时,它进入exit状态。Repository(仓库)是存放各种开源镜像文件的地方,专门用来存放开源镜像的服务器,和代码托管的gitlab一样的关系:镜像是Docker运行容器的前提,仓库是地方tostoreimages(warehouse类似于代码托管仓库)深入理解:当镜像通过RUN命令运行成功后,运行的镜像会创建一个Docker容器。容器可以理解为一个轻量级的沙箱。Docker使用容器来运行和隔离应用程序。容器可以启动、停止、删除,不会影响Docker镜像1.3镜像和容器的关系最容易理解:镜像相当于一个构造函数,容器相当于一个实例这个构造函数2.安装yuminstalldocker2。1安装完成后,运行如下命令验证是否安装成功:dockerversion//ordockerinfo3.Dockerfile(以node镜像为例,nginx镜像和本地nginx.conf配置文件mounting将在下面单独讨论)描述镜像内容和创建步骤的文件,dockerbuild命令将要执行的文件,工程源文件也放在这个文件夹中。本例中放置了一个node服务的app.js文件。3.1app.js文件varexpress=require('express');varapp=express();varserver=app.listen(3000,function(){console.log("启动3000端口服务")});3.2dockerfileFROMnode:latest//从DockerHub拉取最新的node基础镜像RUNmkdir-p/webfile/NeteaseCloudNodeApi//创建文件WORKDIR/webfile/NeteaseCloudNodeApi///指定容器工作目录COPY./webfile/NeteaseCloudNodeApi///复制当前文件到Container工作目录。引用所有文件RUNnpminstall//安装依赖包CMD["npm","start"]//执行启动命令,一个dockerfile只能有一个CMD,如果有多个则执行最后一个文件夹中的执行指令构建图像dockerbuild-tnodeserver:v1。//。是Dockerfile的路径,不能忽略//-t指定构建镜像的名称查看所有镜像dockerimages删除所有镜像dockerrmi$(dockerimages-q)删除所有不用的镜像dockerimageprune--force--allordockerimageprune-f-a`5.ContainerDocker容器是一个Docker镜像的运行实例,它实际运行项目程序,消耗系统资源,提供DockerContainer为服务提供系统硬件环境。我们可以使用DockerImages制作的系统盘,加上我们编写的项目代码,运行起来提供服务。5.1通过镜像创建容器dockerrun--namemyserver-d-p3000:3000--rmnodeserver:v1//-d后台运行//-p将指定的本地端口映射到容器的指定端口//--rm:容器停止运行后,会自动删除容器文件//--name:容器名称为myserver此时可以通过3000端口访问容器中的节点服务5.2通用容器操作说明列出运行中的容器dockerps列出所有容器:包括非运行中的容器dockerps-a停止所有容器dockerstop$(dockerps-aq)删除所有容器dockerrm$(dockerps-aq)deleteallstoppedcontainersdockercontainerprune-f5.3进入容器查看正在运行的容器dockerps进入容器dockerexec-itcontainerIDbash//或者dockerexec-itcontainerID/bin/bash退出容器exit5.4的区别dockerrun和启动dockerrun仅在第一次运行时使用,将镜像放入容器中。以后再次启动容器时,只需要使用命令dockerstart即可。dockerrun相当于执行了两步操作:将镜像放入容器(dockercreate),然后启动容器使其成为运行时容器(dockerstart)。6.nginx镜像和本地nginx.config配置文件挂载和vue项目部署如果对nginx配置有任何疑问,可以看我的另一篇文章阿里云服务器(centos)配置nginx和node环境部署6.1dockerfile配置文件FROMnginx:latestRUNmkdir-p/webfile/vue-music-player-pcWORKDIR/webfile/vue-music-player-pc/COPY./dist//webfile/vue-music-player-pc/6.2本地nginx.conf配置文件nginx的配置文件网上有很多。复制一份即可,但容器目录要修改为自己项目对应的目录,端口设置为自己需要的端口。6.3构建镜像,运行容器构建音乐镜像。nginx.conf配置文件到容器理解为容器使用本地nginx.congf配置文件-p将本地端口映射到容器端口-v将本地配置挂载到容器。容器最前面是容器nginx.conf的路径,后面是宿主机nginx。conf路径-drundocker后台运行-it-p8080:80-v/etc/nginx/nginx.conf:/etc/nginx/nginx.conf-dmusic:v1现在可以通过端口访问vue项目了8080有问题可以加我qq:990324393
