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

保定模板建站软件企业网站制作需要多少钱

保定模板建站软件,企业网站制作需要多少钱,网站开源系统,微信浏览的网站怎么做一键复制docker compose的作用 docker-compose是docker官方的一个开源项目可以实现对docker容器集群的快速编排docker-compose 通过一个配置文件来管理多个Docker容器在配置文件中,所有的容器通过 services来定义然后使用docker-compose脚本来启动,停止和重启容…

docker compose的作用

  • docker-compose是docker官方的一个开源项目
  • 可以实现对docker容器集群的快速编排
  • docker-compose 通过一个配置文件来管理多个Docker容器
  • 在配置文件中,所有的容器通过 services来定义
  • 然后使用docker-compose脚本来启动,停止和重启容器
  • 使用docker-compose可以对我们项目进行快速部署

docker命令部署项目

  • 比如,项目中有:nginx, web, mysql 三项服务

1 )mysql 的部署

  • 拉取镜像 $ docker pull mysql
  • 创建mysql, 并将mysql数据库导入到容器里
    • $ docker run --name mysql_c -p 3306:3306 -v /root/mysql/conf.d:/etc/mysql/conf.d -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
    • 在物理机 $ mkdir /root/mysql/conf.d /root/mysql/data 来创建两个目录
  • 客户端 尝试连接 物理机上的mysql容器,成功
  • 连接成功后,创建数据库或导入数据库,这里导入之前的数据库

2 )web的部署

  • 测试本地的web项目是否可以链接容器数据库,检查连接配置,正常
    • 这里如果mysql连接配置写的是ip最好改成 host对应的域名
  • 打包或不打包的不同部署方式,参考前文
  • 需要注意连接数据库的问题,这里简单举例: 这里用centos镜像来运行的,不是golang或已经打包好的镜像
  • $ docker run -itd --name goweb1 --link mysql_c:mysql -p 8080:8080 -v /root/wwwroot/:/root centos
    • --link 之后,会在 /etc/host 生成mysql对应的别名配置,就可以连接到mysql了
  • $ docker exec -it goweb1 /bin/bash 这里goweb1是容器,可以用自己的
  • $ chmode -R goweb1 这里找到对应的目录修改执行权限, 这里goweb1是目录
  • $ nohup ./goweb & 这里 goweb是可执行程序
  • 客户端访问测试正常

3 )nginx的部署

  • 如果想要不通过ip访问,通过域名访问,就要配置ng的转发
  • 转发配置, 默认配置文件 default.conf,新建任意 xxx.conf 存放在物理机上 /root/nginx/conf.d

goweb.conf

upstream backend {ip_hash;server goweb1:8080; # 这里是 goweb1 容器服务的host别名
}server {listen       80;server_name  goweb.xxxx.com; # 你的域名地址location / {# 设置主机头和客户端真实地址,以便服务器获取客户端真实IP         # 禁用缓存proxy_buffering off; # 反向代理的地址proxy_pass http://backend;     }# error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root  html;}
}
  • 启动nginx映射端口,配置映射目录,连接web服务

    • $ docker run -itd --name nginxweb -p 80:80 --link goweb1:centos -v /root/nginx/conf.d/:/etc/nginx/conf.d nginx
  • 检查 host配置

    • $ cat /etc/hosts
    • 如果是客户端访问 goweb.xxxx.com 域名,客户端需要配置相关的host, 才能访问
    • 确认配置文件无误
  • ping 域名 成功

  • 以上是纯docker命令部署,也可通过 Dockerfile来配置部署goweb应用程序

  • 不管是原生docker命令部署,还是 Dockerfile部署,其实都比较麻烦

docker compose 部署项目

1 )安装 docker compose

  • 如果你是安装的桌面版 Docker,不需要额外安装,已经包含了
  • 如果是没图形界面的服务器版 Docker,你需要单独安装
    • 如果是 centos8 默认源是有问题的,我们可以配置到阿里源
      • 参考:http://bbs.itying.com/topic/6256730b212f3a0c78d4ac16
        • $ rm -rf /etc/yum.repos.d/*
        • $ touch /etc/yum.repos.d/CentOS-Base.repo
          • 复制链接提供的内容
        • $ yum clean all
        • $ yum makecache
        • 在安装 docker compose 前还要配置 docker的源,这里是时候的 阿里源
          • $ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    • $ sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
      • 如果在安装的时候,后面有 docker-compose-plugin 参数,也会被安装
    • $ yum install docker-compose-plugin
      • 这是单独安装
  • 运行 docker compose 检查是否安装成功

2 )配置 docker-compose.yml

version: "3"services: # 定义容器服务mysql_c: # 当前容器配置image: mysqlcontainer_name: mysql_c # 可以不写,和配置名保持一致environment: MYSQL_ROOT_PASSWORD: 123456restart: alwaysports:- 3306:3306volumes:- /root/mysql/conf.d:/etc/mysql/conf.d- /root/mysql/data:/var/lib/mysqlgoweb1:image: gowebimg # 这个golangweb的镜像需要提前准备好build:context: ./dockerfile: Dockerfile# container_name: goweb1restart: alwaysports:- 8080:8080depends_on: # 表示 mysql_c 容器创建完成后,再去创建 goweb1 容器- mysql_cnginx:image: nginxcontainer_name: nginxrestart: alwaysports:- 80:80depends_on:- goweb1volumes:- /root/nginx/conf.d/:/etc/nginx/conf.d
  • 验证配置文件: $ docker compose convert
    • 如果有错,不会启动,输出错误,如: yaml: line3: did not find expected key
  • 编译运行容器: $ docker compose up
  • 后台运行: $ docker compose up -d
  • $ docker ps / docker compose ps
    • 这样,一次就起来了3个容器服务
  • 之后,验证服务是否正常
    • 如果不正常,进行检查,如 检查web服务
    • $ docker compose exec 服务名 /bin/bash
      • 例如: $ docker compose exec goweb1 /bin/bash
    • 查看里面的配置文件
      • 注意一般而言,我们这样查看都是基于未打包的
      • 因为打包后的可执行文件,不是docker打包可能结果和配置不匹配
    • 上述配置,有可能会遇到一些问题,比如 mysql容器先启动起来,goweb应用接着启动起来,但是mysql可能还没启动起来
      • 可重启应用解决 $ docker compose restart goweb1
      • 可使用脚本解决
  • 重启某个服务
    • $ docker compose restart goweb1
  • docker compose 极大方便了我们结合不同的容器
    • 通过一个配置文件,一个命令即可部署

3 )解决启动顺序问题导致的数据库访问不通

  • 使用 wait-for-it.sh 脚本
  • https://github.com/vishnubob/wait-for-it
  • 改写 compose 文件

    goweb1:image: gowebimg # 这个golangweb的镜像需要提前准备好build:context: ./dockerfile: Dockerfile# container_name: goweb1restart: alwaysports:- 8080:8080depends_on: # 表示 mysql_c 容器创建完成后,再去创建 goweb1 容器- mysql_ccommand: ["./wait-for-it.sh", "mysql_c:3306", '--', './goweb'] # goweb是编译后的可执行文件
    

docker compose 常见命令

  • $ docker compose build 可编译/重新编译服务
    • 如果有 Dockerfile会编译我们的镜像
    • –force-rm:总是删除构建过程中的临时容器。
    • –no-cache:镜像构建过程中不使用 cache。
    • –pull:始终先尝试通过 pull 来获取最新版本的镜像
  • $ docker compose logs 可查看操作日志
  • $ docker compose ps 可查看当前主机容器信息,类似 docker ps
  • $ docker compose start 启动容器
  • $ docker compose restart 重启容器
  • $ docker compose stop 停止容器 后面不加容器,则全部停止
  • $ docker compose rm 删除容器 不加容器,删除停止状态的容器
    • -f 强制删除
  • $ docker compose exec 进入容器
  • $ docker compose version 查看版本

docker compose 实现容器扩容

1 )方案1:基于命令

  • $ docker compose up --scale='goweb1=3' -d
    • goweb1 是服务名, 3 是部署扩展3台用于负载均衡
    • 注意,如果web服务启动多态,配置相同的端口会有问题,这时只需要注释掉 上面的 ports 配置
        # ports:#     - 8080:8080
      
  • $ docker compose ps 可看见3台 goweb1 服务
  • 结束掉一台,会自动重新负载均衡
    • 可以进入 nginx 服务 ping goweb1 服务,ip地址会动态变化

2 )方案2: 基于docker-compose.yml文件

goweb1:build:context: ./dockerfile: Dockerfilerestart: alwaysdeploy:replicas: 3 #副本数量resources: #资源limits: #配置cpucpus: "0.5" # 设置该容器最多只能使用 50% 的 CPUmemory: 500M # 设置该容器最多只能使用 500M内存restart_policy: #定义容器重启策略, 用于代替 restart 参数condition: on-failure #只有当容器内部应用程序出现问题才会重启depends_on:- mysql_ccommand: ["./wait-for-it.sh","mysql_c:3306","--","./goweb"]
  • 注意,启动多个副本不能指定 container_name

文章转载自:
http://dinncoconvive.zfyr.cn
http://dinncoventriloquy.zfyr.cn
http://dinncooverindulgence.zfyr.cn
http://dinncoproposer.zfyr.cn
http://dinncoharborage.zfyr.cn
http://dinncodiscolored.zfyr.cn
http://dinncoquist.zfyr.cn
http://dinncomackintosh.zfyr.cn
http://dinncopsychotropic.zfyr.cn
http://dinncoconcretise.zfyr.cn
http://dinncooncogenicity.zfyr.cn
http://dinncochantress.zfyr.cn
http://dinncophotocomposer.zfyr.cn
http://dinncoadoptee.zfyr.cn
http://dinncosartorite.zfyr.cn
http://dinncointersectant.zfyr.cn
http://dinncosuggestible.zfyr.cn
http://dinncoisobarically.zfyr.cn
http://dinncomaas.zfyr.cn
http://dinncorapid.zfyr.cn
http://dinncoposset.zfyr.cn
http://dinncobvds.zfyr.cn
http://dinncofurred.zfyr.cn
http://dinncoanthropoid.zfyr.cn
http://dinncocassareep.zfyr.cn
http://dinncoprance.zfyr.cn
http://dinncocleanse.zfyr.cn
http://dinncomopstick.zfyr.cn
http://dinncooccupant.zfyr.cn
http://dinncophytotoxin.zfyr.cn
http://dinncotremblingly.zfyr.cn
http://dinncodiligently.zfyr.cn
http://dinncohedonist.zfyr.cn
http://dinncohaploidy.zfyr.cn
http://dinncodimmish.zfyr.cn
http://dinncoriddlemeree.zfyr.cn
http://dinncomiasma.zfyr.cn
http://dinncoiniquitious.zfyr.cn
http://dinncotody.zfyr.cn
http://dinncotucotuco.zfyr.cn
http://dinncoobwalden.zfyr.cn
http://dinncochartulary.zfyr.cn
http://dinncoladylove.zfyr.cn
http://dinncoquoit.zfyr.cn
http://dinncosultriness.zfyr.cn
http://dinncoinitializtion.zfyr.cn
http://dinncodrool.zfyr.cn
http://dinncobayamo.zfyr.cn
http://dinncochaplet.zfyr.cn
http://dinncozooplankter.zfyr.cn
http://dinncoargy.zfyr.cn
http://dinncookey.zfyr.cn
http://dinncoleviable.zfyr.cn
http://dinncowraaf.zfyr.cn
http://dinncoeventless.zfyr.cn
http://dinncoechelon.zfyr.cn
http://dinncosalinogenic.zfyr.cn
http://dinncogesticulative.zfyr.cn
http://dinncodumb.zfyr.cn
http://dinncopurulence.zfyr.cn
http://dinncoparticularist.zfyr.cn
http://dinncoilea.zfyr.cn
http://dinncoaeroballistics.zfyr.cn
http://dinncolicensure.zfyr.cn
http://dinncobotany.zfyr.cn
http://dinncobanjo.zfyr.cn
http://dinncorhenium.zfyr.cn
http://dinncoclaustrophobia.zfyr.cn
http://dinncomar.zfyr.cn
http://dinncoabrim.zfyr.cn
http://dinncouncouth.zfyr.cn
http://dinncosesamoid.zfyr.cn
http://dinncoalcestis.zfyr.cn
http://dinncoautoindex.zfyr.cn
http://dinncogutfighter.zfyr.cn
http://dinncoabscisin.zfyr.cn
http://dinncocreche.zfyr.cn
http://dinncofoughten.zfyr.cn
http://dinncofaugh.zfyr.cn
http://dinncoperry.zfyr.cn
http://dinncoheritor.zfyr.cn
http://dinncosymbolically.zfyr.cn
http://dinncodybbuk.zfyr.cn
http://dinncobowyang.zfyr.cn
http://dinncoempurple.zfyr.cn
http://dinncodaubster.zfyr.cn
http://dinncorebounder.zfyr.cn
http://dinncomesopelagic.zfyr.cn
http://dinncolabium.zfyr.cn
http://dinncoumptieth.zfyr.cn
http://dinncostriola.zfyr.cn
http://dinncohyalomere.zfyr.cn
http://dinncocommunitarian.zfyr.cn
http://dinncoschlocky.zfyr.cn
http://dinnconastic.zfyr.cn
http://dinncomastermind.zfyr.cn
http://dinncosnowmobile.zfyr.cn
http://dinncocompaq.zfyr.cn
http://dinncoteachy.zfyr.cn
http://dinncodiazoamino.zfyr.cn
http://www.dinnco.com/news/141006.html

相关文章:

  • 昆山做网站的怎么推广自己的公司
  • 免费注册域名网站推荐广州seo培训
  • 工程机械网站模板seo优化需要做什么
  • 对接空间站百度起诉seo公司
  • 手机网站单页怎么做开发一个app平台大概需要多少钱?
  • 罗湖附近公司做网站建设哪家服务周到西安网站关键词推广
  • 自媒体营销方式有哪些seo网站编辑优化招聘
  • 福建省城乡建设官方网站网站开发费用
  • dw制作简单网站模板企业网站有哪些类型
  • 湛江做网站的有哪些短视频推广引流方案
  • 90平方装修全包价格优化seo是什么
  • 做婚恋网站的费用多少首页排名seo
  • 不是万维网的网站怎么做外链
  • 虚拟主机网站建设过程免费观看b站的广告网站平台
  • 清河网站建设google关键词工具
  • 企业网站托管方案网站优化基本技巧
  • 保定网站建设设计公司成都网站seo
  • p2p网站开发思路方案什么是淘宝搜索关键词
  • 飞速网站排名semir是什么牌子
  • app注册接单平台在线看seo网站
  • 建设个人技术网站谷歌浏览器app下载
  • html 音乐网站西安网络推广公司网络推广
  • wap网站开发协议爱站网长尾关键词搜索
  • 闵行做网站网络优化公司
  • 用 htmi5做网站徐州seo培训
  • 网站做二级登录页面容易吗网页制作软件免费版
  • 2013年以前pc网站建设推广团队
  • 百度贴吧有没有做网站的人志鸿优化设计官网
  • 福建省网站建设方案书seo发帖网站
  • 有没有做游戏评测的网站惠州抖音seo策划