当前位置: 首页 > Web前端 > HTML

实战:dockerfile 最小实践——koa 为例

时间:2023-03-27 22:57:45 HTML

实战:dockerfile的最小实践——以koa为例将koa服务部署到服务器。必备知识:对docker实现思路有一定了解第一步:先启动一个koa应用,第二步:生成dockerfile并写入第三步:根据dockerfile生成镜像(dockerbuild)第四步:基于此镜像生成(运行)一个容器,并检查它是否在本地机器上运行。第5步:如果通过,则导出此图像。第六步:连接xshell到服务器(假设服务器上安装了docker),导入这个镜像,通过这个镜像生成一个容器,这是最小实现。这里还有一种实现方式:第五步,发布到远程仓库,第六步,从远程拉取到镜像,但是缺点是你的镜像是公有的(只有一个私有配额)第一步:先启动一个koa应用,新建一个dockerfile_koa_demo文件,npminit-y生成package.json。下载koa包,新建app.jsmkdirdockerfile_koa_democddockerfile_koa_demonpminit-ynpmikoa--savetouchapp.js然后写app.jsconstKoa=require('koa');constapp=newKoa();app.use(async(ctx)=>{ctx.body='hello,docker';});app.listen(3010,()=>{console.log('3010端口启动');});修改package.json的脚本。.."scripts":{"start":"nodemonapp.js"},...启动脚本npmrunstart看到下图:浏览器访问正常Step2:写一个Dockerfile,新建一个DockerfiletouchDockerfileWriteDockerfile#baseimage#FROMFROMnode#复制文件到容器ADD。/home/www#进入工作目录WORKDIR/home/www#安装项目依赖包RUNnpminstall--registry=https://registry.npm。taobao.org#exposeportEXPOSE3010#启动命令CMD["node","./app.js"]第二步完成第三步:根据dockerfile生成镜像为了加快构建速度,我们先生成.dockerignore,并且在.dockerignore中写node_modulestouch.dockerignore,写node_modules,意思是构建docker时,忽略node_modules文件,加快构建速度。通过命令行生成镜像,命名为johan/koa_server:v1.0.0dockerbuild。-tjohan/koa_server:v1.0.0#-t用于镜像命名效果如下图:查看镜像是否有dockerimages第四步:根据这个镜像生成容器命令行生成容器dockerrun-d--namekoa_server_container-p3010:3010johan/koa_server:v1.0.0#-d后台运行#--name命名容器#-p本地端口反映镜像中的端口,查看镜像是否生成dockerps-a中输入http://localhost:3010/浏览器,bingo第五步:Exportthisimagedockersavejohan/koa_server:v1.0.0>koa_server.tar第六步:通过服务器运行这里我们假设服务器上已经安装了docker和lrzsz包(本文将不详细展开)通过xshell连接服务器,通过命令rz上传tar包rz解压压缩包(import)dockerload