当前位置: 首页 > news >正文

网站开发开销接网站开发项目

网站开发开销,接网站开发项目,网站的分析,中铁建设集团招聘信息背景故事话说去年年底给另外一个组的同事写了一个简单的工单查询系统#xff0c;用flask写的#xff0c;当时是部署在我们组的一台测试物理机上#xff0c;操作系统是Redhat 7。后来我们组的这台测试物理机要做其它用途#xff0c;领导给两天时间让把应用迁走#xff0c;问… 背景故事话说去年年底给另外一个组的同事写了一个简单的工单查询系统用flask写的当时是部署在我们组的一台测试物理机上操作系统是Redhat 7。后来我们组的这台测试物理机要做其它用途领导给两天时间让把应用迁走问了使用这个应用的同事他们组自己有一台测试机可以部署到他们自己的测试机上于是又搞一通部署。最近使用这个应用的同事又跑过来找我说他们那台测试机要重装系统有其它用途。彻底无语忍无可忍了用docker吧搞完之后总结一下记个笔记。准备环境Linux OS[rootlabhost ~]# cat /etc/redhat-releaseCentOS Linux release 7.8.2003 (Core)Docker EngineDocker安装请参考官网https://docs.docker.com/engine/install/centos/#install-using-the-repository[rootlabhost pyalpine]# docker versionClient: Docker Engine - Community Version:           19.03.12 API version:       1.40 Go version:       go1.13.10 Git commit:       48a66213fe Built:             Mon Jun 22 15:46:54 2020 OS/Arch:           linux/amd64 Experimental:      falseServer: Docker Engine - Community Engine: Version:          19.03.12 API version:      1.40 (minimum version 1.12) Go version:       go1.13.10 Git commit:       48a66213fe Built:           Mon Jun 22 15:45:28 2020 OS/Arch:         linux/amd64 Experimental:     false containerd: Version:          1.2.13 GitCommit:       7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Version:          1.0.0-rc10 GitCommit:       dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version:          0.18.0 GitCommit:       fec3683环境准备好之后开搞#创建项目文件夹[rootlabhost ~]# mkdir pyalpine#进入项目文件夹[rootlabhost ~]# cd pyalpine#创建requirements.txt实际项目开发中是直接用pip freeze直接生成这里为了方便是手动创建的而且这里面我只放了Flask实际项目会有很多依赖包。[rootlabhost pyalpine]# vim requirements.txt[rootlabhost pyalpine]# cat requirements.txtFlask1.1.1,1.2#创建app.py文件[rootlabhost pyalpine]# vim app.py#代码如下[rootlabhost pyalpine]# cat app.pyfrom flask import Flaskapp Flask(__name__)app.route(/)def hello_world():   return Hello, Flask which is running on Docker container!if __name__ __main__:   app.run(debugTrue, host0.0.0.0, port5000)#接下来我们创建Dockerfile注意Dockerfile的首字母是大写[rootlabhost pyalpine]# vim DockerfileDockerfile内容如下[rootlabhost pyalpine]# cat Dockerfile#拉取镜像FROM python:3.7-alpine#指定工作目录目录名称自己定义如果当前指定的目录不存在的话这个目录会自动被创建WORKDIR /demoapp#复制当前文件夹下的所有项目文件到docker的工作目录也就是我们上面指定的目录COPY ./ ./#根据requirements.txt文件安装相关依赖包RUN pip install -r requirements.txt#指定docker运行的时候默认执行的命令我们想让flask网站随docker启动时就运行CMD [python, app.py]接下来我们来构建我们自己的docker image(注意不要把点号给遗漏了-t参数指定tag也就是你的docker image叫什么名字)[rootlabhost pyalpine]# docker build . -t mypyalpineSending build context to Docker daemon  4.096kBStep 1/5 : FROM python:3.7-alpine --- 6ca3e0b1ab69Step 2/5 : WORKDIR /demoapp --- Using cache --- c89343983176Step 3/5 : COPY ./ ./ --- 2cb8fce548c8Step 4/5 : RUN pip install -r requirements.txt --- Running in 00911a463614Collecting Flask1.2,1.1.1 Downloading Flask-1.1.2-py2.py3-none-any.whl (94 kB)Collecting itsdangerous0.24 Downloading itsdangerous-1.1.0-py2.py3-none-any.whl (16 kB)Collecting Jinja22.10.1 Downloading Jinja2-2.11.2-py2.py3-none-any.whl (125 kB)Collecting click5.1 Downloading click-7.1.2-py2.py3-none-any.whl (82 kB)Collecting Werkzeug0.15 Downloading Werkzeug-1.0.1-py2.py3-none-any.whl (298 kB)Collecting MarkupSafe0.23 Downloading MarkupSafe-1.1.1.tar.gz (19 kB)Building wheels for collected packages: MarkupSafe Building wheel for MarkupSafe (setup.py): started Building wheel for MarkupSafe (setup.py): finished with status done Created wheel for MarkupSafe: filenameMarkupSafe-1.1.1-py3-none-any.whl size12629 sha256f9ec10f37be2db2c6a39211640b9b8336c7be48743dd4a91d13db0ea5e8fe727 Stored in directory: /root/.cache/pip/wheels/b9/d9/ae/63bf9056b0a22b13ade9f6b9e08187c1bb71c47ef21a8c9924Successfully built MarkupSafeInstalling collected packages: itsdangerous, MarkupSafe, Jinja2, click, Werkzeug, FlaskSuccessfully installed Flask-1.1.2 Jinja2-2.11.2 MarkupSafe-1.1.1 Werkzeug-1.0.1 click-7.1.2 itsdangerous-1.1.0Removing intermediate container 00911a463614 --- 12e21da37c96Step 5/5 : CMD [python, app.py] --- Running in ad78a874fd79Removing intermediate container ad78a874fd79 --- f0d4b0160413Successfully built f0d4b0160413Successfully tagged mypyalpine:latest恭喜你你已经成功构建了一个自己的docker imagemypyalpine那我们现在来让他跑起来[rootlabhost ~]# docker run -p 5050:5000 --name myflask mypyalpine * Serving Flask app app (lazy loading) * Environment: production   WARNING: This is a development server. Do not use it in a production deployment.   Use a production WSGI server instead. * Debug mode: on * Running on http://0.0.0.0:5000/ (Press CTRLC to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 236-169-898简单介绍一下docker run想要跑一个docker必须要敲的命令-p 5050:5000指定端口映射冒号前面的是暴露到外面的端口号冒号后面的是在docker里面的端口号--name  myflask指定将要跑起来的docker的名称可选参考但是推荐加上否则docker服务会自己随机给你的docker起个名字你都不认识所以自己的孩子还是起个好听点的名字方便自己记忆和使用。mypyalpine这个是上一步我们构建docker image时给image起的名字这个必须指定别指定错了。小伙伴发现了没有上面我们运行docker之后终端直接显示的我们的flask程序启动的信息没办法再输入其它命令了如果你想继续输入指令怎么搞所以上面运行docker的命令格式不是太好我们再来改造一下让我们的docker启动之后在后台运行只需加上一个 -d参数即可然后我们再用docker ps来查看正在运行的container信息[rootlabhost pyalpine]# docker run -d -p 5050:5000 --name myflask mypyalpined464fd0fa04893db4640cc3f2afe201ca07718978bc55f7a17bcc909cab25475[rootlabhost pyalpine]# docker psCONTAINER ID       IMAGE               COMMAND             CREATED             STATUS             PORTS                   NAMESd464fd0fa048       mypyalpine          python app.py     3 seconds ago       Up 2 seconds        0.0.0.0:5050-5000/tcp   myflask[rootlabhost pyalpine]#注意如果你第一次运行docker run没有加 -d参数想再次运行docker run加-d参数是会报错的此时你需要先停止当前运行的container然后删除container最后再运行加上 -d参数的命令就可以了。[rootlabhost ~]# docker run -d -p 5050:5000 mypyalpine387d43c0920574fd8ea7c75db611c74de7fbc4bdb5be2961246fb8642ad7bc5cdocker: Error response from daemon: driver failed programming external connectivity on endpoint quizzical_bassi (0696007b82f3f83880fc6b43830b5b6680bf8cfc6cd48856fd7b504dc0e87abc): Bind for 0.0.0.0:5050 failed: port is already allocated.[rootlabhost ~]# docker psCONTAINER ID       IMAGE               COMMAND             CREATED             STATUS             PORTS                   NAMES42b0bd3bf39c       mypyalpine          python app.py     4 hours ago         Up 4 hours          0.0.0.0:5050-5000/tcp   goofy_faraday[rootlabhost ~]# docker stop 42b0bd3bf39c42b0bd3bf39c[rootlabhost ~]# docker rm 42b0bd3bf39c42b0bd3bf39c[rootlabhost pyalpine]# docker run -d -p 5050:5000 --name myflask mypyalpined464fd0fa04893db4640cc3f2afe201ca07718978bc55f7a17bcc909cab25475[rootlabhost pyalpine]# docker psCONTAINER ID       IMAGE               COMMAND             CREATED             STATUS             PORTS                   NAMESd464fd0fa048       mypyalpine          python app.py     3 seconds ago       Up 2 seconds        0.0.0.0:5050-5000/tcp   myflask[rootlabhost pyalpine]#我们现在来访问一下flask网站http://192.168.137.200:5050可能大家对上面我们拉取的base image有点疑问为什么选择python:3.7-alpine这个image作为我们的base image来构建我们的docker原因很简单身材苗条。我们可以看一下build好的image mypyalpine大小和一个ubuntu或者centos的image大小比较myflask这个是我用python:3.6这个base image构建的925MB将近1GB.mypyalpine这个是我们用python:3.7-alpine构建的只有83.8MB不到100MB.[rootlabhost pyalpine]# docker imagesREPOSITORY         TAG                 IMAGE ID           CREATED             SIZEmypyalpine         latest             160344652c41       35 minutes ago     83.8MBmyflask             latest             c35e990ccb0c       About an hour ago   925MBpython             3.6                 e0373ff33a19       9 days ago         914MBpython             3.7-alpine         6ca3e0b1ab69       9 days ago         73.1MBbusybox             latest             c7c37e472d31       10 days ago         1.22MBubuntu             latest             74435f89ab78       3 weeks ago         73.9MBcentos             latest             831691599b88       3 weeks ago         215MB最后Enjoy your Docker!
http://www.pierceye.com/news/435216/

相关文章:

  • 南宁网站推广费用0505网页制作与网站建设
  • 2345电视剧网站免费电子营业执照
  • 河北省沧州建设厅网站怎样保存网站资料 做证据
  • 网站同时做竞价和优化可以吗做网站游戏推广赚钱吗
  • 台州建站模板搭建上海远程教育网站设计与开发公司
  • 网站如何做淘客类似58同城分类信息网站开发
  • 网站源码文件安装教程苏州网站建设致宇
  • 免费注册域名网站知乎做网站做图电脑需要什么配置
  • 高埗做网站营销策略分析包括哪些内容
  • wordpress获取站点链接网站门户
  • flashxml网站模板网站后期培训机构全国排名
  • 企业网站设计网站页面设计中为什么要有优先级排列
  • 暗网是什么网站滨江区网站开发公司
  • 南京网站排名优化费用株洲58同城网站建设电话
  • 电子商务网站建设与管理理解上海网站推广企业
  • 设计师网站pintsetseo短视频网页入口引流免费
  • 个人如何注册微信公众号怎么创建网站优化的意义
  • 网站换空间要重新备案吗百度人工电话
  • 做网站要注意哪些问题网站用什么工具做
  • 在福州的网站制作公司滨海新网站建设
  • 帝国网站地图插件泰兴企业网站建设
  • wordpress布置网站教程用dw做简单图片网站
  • 网页制作模板左右结构百度seo关键词优化方案
  • 长沙设备建站按效果付费wordpress可视化编辑器插件
  • 软件开发与网站开发硬件开发语言
  • 开封做网站睿艺美官方网站建设的必要
  • 自适应网站制作简创网络南联网站建设
  • 帮别人做钓鱼网站犯法吗贵州网站建设工作室
  • 企业网站域名空间优化公司治理结构
  • 网站建设 前沿文章php做网站脑图