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

做企业网站还有市场吗seo综合查询工具有什么功能

做企业网站还有市场吗,seo综合查询工具有什么功能,昆明官网seo公司,天猫商城网上购物使用 docker-compose 构建你的项目 1. Docker1.1 安装1.2 docker-compose 2 准备项目2.1 初始化一个node项目4. 准备一个 Dockerfile 文件5. 构建镜像 3.docker-compose构建3.1 配置docker-compose.yml 文件3.2 编排多个服务 重新构建镜像 --force-rm 删除构建过程中的临时容器… 使用 docker-compose 构建你的项目 1. Docker1.1 安装1.2 docker-compose 2 准备项目2.1 初始化一个node项目4. 准备一个 Dockerfile 文件5. 构建镜像 3.docker-compose构建3.1 配置docker-compose.yml 文件3.2 编排多个服务 重新构建镜像 --force-rm 删除构建过程中的临时容器。运行容器4. 水平扩展 node 服务4.1 scale4.2 修改nginx配置文件 最近再次手撕docker。所以就想者分享一下这方面的知识。欢迎各位踩我 1. Docker docker的是什么 就当大家有一定的Docker基础了 所以这篇文章主要是实战方面的内容具体理论的话可以去搜搜其它文章了解学习一下。或者去官网 1.1 安装 window 系统或者 macos 系统可以直接去官网下载 Docker Desktop链接hub.docker.com/?overlayon… 然后就是傻瓜式安装了这边就不介绍了 注意: window下需要企业版才能安装家庭版不能安装或者安装比较麻烦 1.2 docker-compose 在安装完 Docker Desktop 后会默认自动安装好 docker-compose 可以自己在命令行上试试查看当前版本 docker-compose -v docker -v2 准备项目 2.1 初始化一个node项目 mkdir /www mkdir /www/node-server cd /www/node-server初始化package.json npm init -y执行后创建以下文件及文件夹 搭建一个http服务器 这边使用的是express用koa也行看自己喜欢 npm install express简单代码 dev-server.js let express require(express) let os require(os) let app express() // 获取本机ip地址 function getLocalIpAddress () {let ip let netInfo os.networkInterfaces()let osType os.type()if (osType Windows_NT) { for (const dev in netInfo) {// win7的网络信息中显示为本地连接win10显示为以太网if (dev 本地连接 || dev 以太网) {for (let j 0; j netInfo[dev].length; j) {if (netInfo[dev][j].family IPv4) {ip netInfo[dev][j].address;break;}}}}} else if (osType Linux) {ip netInfo.eth0[0].address;}return ip } app.get(/getJson, (request, response) {response.send({title: Hello Express、Hello Docker,ip: getLocalIpAddress(),env: process.env.NODE_ENV}) }) // 监听3000端口 app.listen(3000, () {console.log(server is started) })4. 准备一个 Dockerfile 文件 Docker中镜像和容器的关系就像类与实例的关系 镜像可以通过Dockerfile文件来生成容器通过镜像来创建 Dockerfile用于生成镜像 复制代码 # 指定的一个基础镜像 FROM node:latest # 工作目录 WORKDIR /www/node-server/ # copy package.json 到工作目录中 COPY package.json /www/node-server/package.json # 安装依赖 RUN npm install # 拷贝当前目录的文件到工作目录中 # 如果有不需要忽略的文件可以写在 .dockerignore 文件中比如忽略 node_modules 文件夹 COPY . /www/node-server/ # 向外暴露3000端口 EXPOSE 3000 # 容器运行后执行的命令 CMD npm run start5. 构建镜像 修改package.json 增加代码 scripts: {test: echo \Error: no test specified\ exit 1,start: node dev-server.js 3000},执行构建镜像命令 docker build -t node-server .检查构建结果 构建成功后创建容器 docker run --name node-server-1 -p 3000:3000 node-server使用浏览器访问 3000 端口看看是否启动成功了 3.docker-compose构建 前面我们要使用容器时需要先定义 Dockerfile 文件然后使用 docker build、docker run 等命令操作容器。 然而我们的系统一般都包含上百的服务每个服务又有多个实例如果全手动来启动关闭的话那工作量之大可想而知 那通过 docker-compose 可以轻松、高效的管理容器它是一个用于定义和运行多容器 Docker 的应用程序工具 3.1 配置docker-compose.yml 文件 在项目目录下创建一个 docker-compose.yml 文件 version: 3 services: # 服务列表node: # node 服务build: context: /www/node-server # Dockerfile 的目录用于构建镜像dockerfile: Dockerfilecontainer_name: node-server-1 # 容器名称ports: # 暴露的端口- 3000:3000restart: always # 自动重启environment: # 设置环境变量- NODE_ENVproductioncommand: npm run start # 覆盖容器启动后默认执行的命令构建镜像 docker-compose build执行结果如下 运行容器 docker-compose up -d报错 [rootdev07 music]# docker-compose up -d Creating node-server-1 ... errorCreating node-server-1 ... ERROR: for node-server-1 Cannot create container for service node: Conflict. The container name /node-server-1 is already in use by container 39e4c77c6c5215731eef4aERROR: for node Cannot create container for service node: Conflict. The container name /node-server-1 is already in use by container 39e4c77c6c5215731eef4ab66d1e25d0428619c82e33ba49d059d2b0fc2fc87c. You have to remove (or rename) that container to be able to reuse that name. ERROR: Encountered errors while bringing up the project. 问题分析 使用docker build时 构建过镜像 解决方案 [rootdev07 music]# docker rm 39e4c77c6c5215731eef4ab66d1e25d0428619c82e33ba49d059d2b0fc2fc87c 不出意外的话通过浏览器访问3000端口也是能正常访问 3.2 编排多个服务 比如我们现在需要构建一个 nginx服务来将请求代理到我们的 node-server那我们需要构建两个服务 那么问题来了 nginx容器如何使用我的自己的nginx.conf配置文件 可以通过 volumes 文件映射 nginx容器和 node-server 容器如何进行通信 可以使用 docker-inspect 命令来查看 node-server 容器的IP地址然后修改nginx.conf的配置、 使用networks和links docker容器每次重新构建运行时IP 地址不一定是一样的所以每次都要修改nginx.conf的配置所以方案1的效率显然是低下的。 新增一个 nginx.conf 配置文件 worker_processes 1;events {worker_connections 1024; } http {upstream node-server { server node:3000;} server {listen 80;server_name localhost;location / {proxy_pass http://node-server/;}} }重新修改一下 docker-compose.yml 文件 复制代码# docker-compose.yml version: 3 services: # 服务node: # node 服务build: . # Dockerfile 的目录用于构建镜像container_name: node-server-1 # 容器名称ports: # 暴露的端口- 3000:3000restart: always # 自动重启environment: - NODE_ENVproductionnetworks: # 加入网络- my-networkcommand: npm run start # 覆盖容器启动后默认执行的命令nginx:image: nginx:latest 指定 nginx 镜像ports: # 将本机的 8080 端口映射到容器的80端口- 8080:80 container_name: nginx-noderestart: alwaysvolumes: # 映射本机 F:/nginx.conf 文件到 容器的 /etc/nginx/nginx.conf:ro 文件- F:/nginx.conf:/etc/nginx/nginx.conf:ronetworks: - my-networklinks: # 设置 node 服务别名其实是设置/etc/hosts的域名解析- nodedepends_on: # 指定依赖于哪个服务- node networks: # 网络my-network: # 网络名称driver: bridge重新构建 复制代码# 删除上次构建的容器 docker-compose down 重新构建镜像 --force-rm 删除构建过程中的临时容器。 docker-compose build --force-rm 运行容器 docker-compose up -d 不出意外的话通过浏览器访问本地的8080端口是可以访问到 node-server 的 按着上面的套路可以继续扩展 redis、mysql服务等也是通过加入 network 和 links 来进行相互通信 这部分就不进行介绍了 4. 水平扩展 node 服务 当用户量比较小的情况下我们一个 node 服务就够用了当用户量大的时候就一个 node 服务的话就显得力不从心了。 一般情况下都是升级机器加服务通过 nginx进行负载均衡 那我们如何通过 docker-compose 快速的水平扩展服务呢 4.1 scale docker-compose 给我们提供了一个 scale 命令用于在本机下快速构建多个服务 # 删除上次构建的容器 docker-compose down # 重新构建镜像 --force-rm 删除构建过程中的临时容器。 docker-compose build --force-rm # 运行容器 增加 --scale node5 docker-compose up -d --scale node5 通过–scale node5我们构建5个node服务 不过不出意外的话是会构建失败的报端口占用错误 因为我们的每个node服务都占用了 3000 本机的端口。 所以我们需要修改一下 docker-compose.yml 文件只暴露容器的3000端口不暴露本机的端口 # docker-compose.yml version: 3 services: # 服务node: # node 服务build: . # Dockerfile 的目录用于构建镜像# container_name: node-server-1 # 容器名称# ports: # 暴露的端口# - 3000:3000expose:- 3000restart: always # 自动重启environment: - NODE_ENVproductionnetworks: # 加入网络- my-networkcommand: npm run start # 覆盖容器启动后默认执行的命令nginx:image: nginx:latest 指定 nginx 镜像ports: # 将本机的 8080 端口映射到容器的80端口- 8080:80 container_name: nginx-noderestart: alwaysvolumes: # 映射本机 F:/nginx.conf 文件到 容器的 /etc/nginx/nginx.conf:ro 文件- F:/nginx.conf:/etc/nginx/nginx.conf:ronetworks: - my-networklinks: # 设置 node 服务别名其实是设置/etc/hosts的域名解析- nodedepends_on: # 指定依赖于哪个服务- node networks: # 网络my-network: # 网络名称driver: bridge重新运行 复制代码# 运行容器 增加 --scale node5 docker-compose up -d --scale node5 不出意外的话这次可以构建成功 通过 docker ps -a 可以查看当前运行的容器 复制代码docker ps -a 不出意外的话通过nginx访问负载均衡没有生效每次访问得到的ip地址一直是同一个 4.2 修改nginx配置文件 我们通过 docker inspect nginx-node 命令在查看一下 nginx 容器的信息 docker inspect nginx-node可以看到 “node-server_node_3:node”,我们nginx配置了server node:3000;所以每次请求nginx都将请求代理到node-server_node_3这个node服务上了 upstream node-server { server node:3000; } 所以我们修改一下 nginx.conf 配置这样就能将请求代理到不同的机器上了 upstream node-server { upstream node-server { server node_1:3000 weight3; # 加权重server node_2:3000;server node_3:3000;server node_4:3000;server node_5:3000;} }
http://www.pierceye.com/news/455740/

相关文章:

  • 徐州学习网站建设影视公司组织架构
  • 怎么看别人的网站有没有做301蓝色扁平化企业网站
  • 郑州建站模板网络程序员
  • 健身顾问在哪些网站做推广北京网络推广外包公司排行
  • 天津网站开发工资水平建设网站如何写文案
  • 做a漫画在线观看网站注册个免费网站
  • 杭州网站设计网页长安东莞网站推广
  • 福州网站建设软件怎样上传自己的网站
  • wordpress手机站如何做wordpress 查询文章
  • 企业专业网站设计公wordpress打开慢
  • 网站制作方案怎么做青岛住房和城乡建设部网站
  • 织梦系统做的网站忘记登录密码百家 主题 wordpress
  • 营销推广软文婚纱摄影网站seo方案
  • 上海网站制作网站建设汶川县建设局网站
  • 东莞seo网站推广怎么做能够让网站流量大
  • 郑州网站建设做推广吗灰色关键词排名方法
  • 在线推广企业网站的方法有哪些网站推广到海外怎么做
  • 怎么用视频做网站首页php网站开发职位
  • 网站平台怎么做typecho跟wordpress
  • 网站建设找什么公司微网站建设流程
  • 如何制作数据库网站哔哩哔哩推广平台
  • 免费建立手机网站网站建设下载模板之后怎么修改
  • wordpress 网站暂停做社区生意的网站
  • 渭南做网站的公司商业网站后缀名
  • 凡科建站电话邙山网站建设
  • 哪些网站可以做ppi小程序源码什么意思
  • 做公司网站都需要哪些东西产品画册设计公司
  • 网页优化与网站优西安开发网站建设
  • 大连建设监察执法网站免费icp备案服务码
  • 潮州做网站京东网站建设步骤