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

小红网站建设自媒体发稿

小红网站建设,自媒体发稿,如何做京东购物网站,产品 网站建设我们知道使用一个Dockerfile模板文件#xff0c;可以让用户很方便的定义⼀个单独的应用容器。然而#xff0c;在日常工作中#xff0c;经常会碰到需要多个容器相互配合来完成某项任务的情况。 例如要实现一个Web项目#xff0c;除了Web服务容器本身#xff0c;往往还需要…我们知道使用一个Dockerfile模板文件可以让用户很方便的定义⼀个单独的应用容器。然而在日常工作中经常会碰到需要多个容器相互配合来完成某项任务的情况。 例如要实现一个Web项目除了Web服务容器本身往往还需要再加上后端的数据库服务容器甚至还包括负载均衡容器等我们只能一个一个写dockerfile文件然后bulid构建和run手动操作单个容器。 Docker Compose恰好满足了这样的需求。它允许⽤户通过⼀个单独的docker-compose.yml模板⽂件YAML格式来定义⼀组相关联的应⽤容器为⼀个项⽬project。 docker-compose基础概念 docker-compose项目是docker官方的开源项目负责实现对docker容器集群的快速编排。 docker-compose将所管理的容器分为三层分别是工程project服务service以及容器containner docker-compose运行目录下的所有文件docker-compose.yml文件、extends文件或环境变量等组成一个工程如无特殊指定工程名即为当前目录名。一个工程当中可以包含多个服务每个服务中定义了容器运行的镜像、参数、依赖。一个服务中可以包括多个容器实例docker-compose并没有解决负载均衡的问题。因此需要借助其他工具实现服务发现及负载均衡比如nginx。 docker-compose的安装 Docker安装完成后docker-compose也随之自动安装 $ docker-compose --version docker-compose version 1.25.0, build unknown最新版本号可以在这里查询https://github.com/docker/compose/releases 没有安装的可以使用下面的命令进行安装 $ sudo curl -L https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose$ sudo chmod x /usr/local/bin/docker-compose$ docker-compose --version docker-compose version 1.29.2, build 5becea4c熟悉python的朋友可以使用pip去安装docker-Compose $ pip install docker-composedocker-compose文件的语法结构 docker compose文件的语法说明 https://docs.docker.com/compose/compose-file/ version: 3.8 # 可选docker compose语法的版本services: # 容器servicename: # 服务名字这个名字也是内部 bridge网络可以使用的 DNS nameimage: # 镜像的名字command: # 可选如果设置则会覆盖默认镜像里的 CMD命令environment: # 可选相当于 docker run里的 --envvolumes: # 可选相当于docker run里的 -vnetworks: # 可选相当于 docker run里的 --networkports: # 可选相当于 docker run里的 -pservicename2:volumes: # 可选相当于 docker volume createnetworks: # 可选相当于 docker network create程序准备 准备一个Python文件名字为app.py内容如下 from flask import Flask from redis import Redis import os import socketapp Flask(__name__) redis Redis(hostos.environ.get(REDIS_HOST, 127.0.0.1), port6379)app.route(/) def hello():redis.incr(hits)return fHello Container World! I have been seen {redis.get(hits).decode(utf-8)} times and my hostname is {socket.gethostname()}.\n准备Dockerfile 准备一个Dockerfile FROM python:3.9.5-slimRUN pip install flask redis \groupadd -r flask useradd -r -g flask flask \mkdir /src \chown -R flask:flask /srcUSER flaskCOPY app.py /src/app.pyWORKDIR /srcENV FLASK_APPapp.py REDIS_HOSTredisEXPOSE 5000CMD [flask, run, -h, 0.0.0.0]镜像准备 构建flask镜像准备一个redis镜像。 $ docker image pull redis$ docker image build -t flask-demo .$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE flask-demo latest e878470f65a4 13 minutes ago 128MB redis latest 7614ae9453d1 21 months ago 113MB python 3.9.5-slim c71955050276 2 years ago 115MB创建一个docker bridge $ docker network create -d bridge demo-network adc45a365e7294f56b65464eb88a212624855b52dc568c9f70c4e39c31d43e4a$ docker network ls NETWORK ID NAME DRIVER SCOPE 28e45b9b8f4b bridge bridge local adc45a365e72 demo-network bridge local 29c08e905dab host host local d466db2f54a1 none null local创建redis container 创建一个名为redis-server的container连到demo-network上 $ docker container run --rm -d --name redis-server --network demo-network redis ff46dca96a56f8ce739732a87e2407fffcbc4a16651638aed15224ea9e355a6a$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ff46dca96a56 redis docker-entrypoint.s… 24 seconds ago Up 23 seconds 6379/tcp redis-server创建flask container 创建一个名为flask-demo的container连到demo-network上 $ docker container run --rm -d --network demo-network --name flask-demo --env REDIS_HOSTredis-server -p 5000:5000 flask-demo a843952b19fc98f8dfd8a46eac18abb8885834a1f718de5ca265f09795db0f2a$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a843952b19fc flask-demo flask run -h 0.0.0.0 About a minute ago Up 59 seconds 0.0.0.0:5000-5000/tcp, :::5000-5000/tcp flask-demo ff46dca96a56 redis docker-entrypoint.s… 9 minutes ago Up 9 minutes 6379/tcp redis-server访问http://127.0.0.1:5000应该能看到类似下面的内容每访问一次计数加1 $ curl http://127.0.0.1:5000 Hello Container World! I have been seen 1 times and my hostname is a843952b19fc.可以把上面的步骤合并到一起成为一个部署脚本 # prepare image docker image pull redis docker image build -t flask-demo .# create network docker network create -d bridge demo-network# create container docker container run -d --name redis-server --network demo-network redis docker container run -d --network demo-network --name flask-demo --env REDIS_HOSTredis-server -p 5000:5000 flask-demo改造为Docker Compose 以上面的Python Flask Redis练习为例子改造成一个docker-compose文件。 docker-compose.yml文件如下 version: 3.8services:flask-demo:image: flask-demo:latestenvironment:- REDIS_HOSTredis-servernetworks:- demo-networkports:- 8080:5000redis-server:image: redis:latestnetworks:- demo-networknetworks:demo-network:docker-compose常用命令 运行这些命令需要结合docker-compose一起使用且必须要在含有docker-compose.yml文件的目录中或者使用-f参数指定docker-compose.yml文件才可以使用不然报错。 docker-compse up docker-compse up创建和启动容器。 $ docker-compose up -d Starting app_redis-server_1 ... done Starting app_flask-demo_1 ... done如果想要服务后台运行需要带上-d参数。 docker-compose ps docker-compose ps列出容器。 $ docker-compose psName Command State Ports ------------------------------------------------------------------------------------------------------ app_flask-demo_1 flask run -h 0.0.0.0 Up 0.0.0.0:8080-5000/tcp,:::8080-5000/tcp app_redis-server_1 docker-entrypoint.sh redis ... Up 6379/tcpdown 删除容器、网络、数据卷和镜像 stop/start/restart 停止/启动/重启服务 docker-compose stop docker-compose stop停止服务。 $ docker-compose stop Stopping app_redis-server_1 ... done Stopping app_flask-demo_1 ... donedocker-compose start docker-compose start启动服务。 $ docker-compose start Starting flask-demo ... done Starting redis-server ... donedocker-compsoe restart docker-compose restart重启服务。 $ docker-compose restart Restarting app_redis-server_1 ... done Restarting app_flask-demo_1 ... donedocker-compse down docker-compse down删除容器、网络、数据卷和镜像。 $ docker-compose down Stopping app_redis-server_1 ... done Stopping app_flask-demo_1 ... done Removing app_redis-server_1 ... done Removing app_flask-demo_1 ... donedocker-compse logs docker-compse logs查看服务容器的输出。 $ docker-compose logs -f Attaching to app_flask-demo_1, app_redis-server_1 flask-demo_1 | * Serving Flask app app.py flask-demo_1 | * Debug mode: off flask-demo_1 | WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. flask-demo_1 | * Running on all addresses (0.0.0.0) flask-demo_1 | * Running on http://127.0.0.1:5000 flask-demo_1 | * Running on http://172.21.0.3:5000 flask-demo_1 | Press CTRLC to quit 。。。 。。。docker-compose top docker-compose top显示正在运行的容器进程。 $ docker-compose top app_flask-demo_1UID PID PPID C STIME TTY TIME CMD ----------------------------------------------------------------------------------------------------------------- systemd 11265 11244 2 16:31 ? 00:00:00 /usr/local/bin/python /usr/local/bin/flask run -h 0.0.0.0app_redis-server_1UID PID PPID C STIME TTY TIME CMD --------------------------------------------------------------------------- systemd 11078 11059 0 16:30 ? 00:00:00 redis-server *:6379docker-compose scale docker-compose scale指定一个服务容器启动数量。 现在推荐使用docker-compose up -d --scale。 $ docker-compose scale redis-server2 WARNING: The scale command is deprecated. Use the up command with the --scale flag instead. Starting app_redis-server_1 ... done Creating app_redis-server_2 ... done$ docker-compose psName Command State Ports --------------------------------------------------------------------------------------------------------- app_flask-demo_1 flask run -h 0.0.0.0 Up 0.0.0.0:8080-5000/tcp,:::8080-5000/tcp app_redis-server_1 docker-entrypoint.sh redis ... Up 6379/tcp app_redis-server_2 docker-entrypoint.sh redis ... Up 6379/tcp$ docker-compose up -d --scale redis-server1 app_flask-demo_1 is up-to-date Stopping and removing app_redis-server_2 ... done Starting app_redis-server_1 ... donedocker-compose exec docker-compose exec在容器里面执行命令。 $ docker-compose exec --index2 redis-server bash root7b36aecb80d1:/data#docker-compse build docker-compse build重新构建服务。 将上面的docker-compose.yml修改如下 version: 3.3services:flask-demo:build:context: .dockerfile: Dockerfileimage: flask-demo:latestenvironment:- REDIS_HOSTredis-servernetworks:- demo-networkports:- 8080:5000redis-server:image: redis:latestnetworks:- demo-networknetworks:demo-network:主要是将flask-demo的镜像改为从Dockerfile构建而不是使用已有镜像。 $ docker-compose build redis-server uses an image, skipping Building flask-demo Step 1/8 : FROM python:3.9.5-slim--- c71955050276 Step 2/8 : RUN pip install flask redis groupadd -r flask useradd -r -g flask flask mkdir /src chown -R flask:flask /src--- Using cache--- 41091d3d13c5
http://www.hkea.cn/news/14312625/

相关文章:

  • 嘉兴装修公司做网站网站关键词放哪
  • 铜川建设网站随州网站建站
  • 网站建设价格优 秀乐云seo上海近期大事件
  • 建一个网站怎么赚钱适合女孩子学的计算机类专业
  • 网络公司 给 客户网站备案网络服务器机柜厂家
  • 公司建站费用做一款游戏app需要多少钱
  • 西安北郊做网站公司免费手机网站制作方法
  • 婚纱手机网站关键字排名查询工具
  • 林业网站建设方案网站建设经典教材
  • 品牌网站有哪些内容房地产网站 模板
  • 找网络公司做网站需要注意的木疙瘩h5制作教程
  • 网站关键词推广企业国内免费视频素材网站有哪些
  • 介绍化工项目建设和招聘的网站网站维护经费
  • 哪里可以接网站开发项目做酒店网站建设方案书
  • 网站制作设计收费标准2023最新永久地域网名
  • wap手机网站wordpress导入主题
  • 找it工作有什么好的招聘网站nginx wordpress 伪静态
  • 做微信表情的微信官方网站网上商城系统代码
  • 电子商务网站开发的基本要求wordpress H1 title
  • 在excel中怎么做邮箱网站怎样建设旅游网站
  • 镇江网站设计开发公司电话点击器原理
  • 易尔通网站建设用python做网站的步骤
  • 什么是网站集约化建设php网站开发教程
  • 政务网站建设要求网络舆情分析报告范文
  • 北京网站建设网络推广公司免费下载安装app
  • 设计大型网站建设怎样优化网站 优帮云
  • 微信平台的微网站怎么做的php wordpress 漏洞利用
  • 安平做网站的电话wordpress投资主题公园
  • 编辑网站的软件手机电子工程网账号
  • 合肥市建设网站市场信息价沈阳口碑最好的装修公司