热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

centos7安装docker及Hyperf

安装docker:用yum源安装-查看是否已安装docker列表:yumlistinstalled|grepdocker安装docker:yum-yinstalldocker启动d

安装docker:

用yum源安装-查看是否已安装docker列表:

yum list installed | grep docker

安装docker:

yum -y install docker

  启动docker

systemctl start docker

 查看docker服务状态

systemctl status docker

  centos7 安装docker及Hyperf

 

 

 自此docker安装完成;

进入docker后修改时区:

#修改时区,设置为上海时区
  

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime	

  或者

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

 

为docker设置国内阿里云的镜像加速器:

 vi /etc/docker/daemon.json

添加内容如下:

{ 
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"] 
}

配置文件daemmon,json添加阿里云镜像地址,保存并退出,重启docker服务:

systemctl restart docker
sudo systemctl status docker
sudo docker ps -a -q // 查看所有容器ID
sudo docker stop $(sudo docker ps -a -q) //  stop停止所有容器
sudo docker  rm $(sudo docker ps -a -q) //   remove删除所有容器

  一次性停止删除容器:

docker stop $(docker ps -q) & docker rm $(docker ps -aq)

  

docker重启之后,就可以正常拉取镜像了:

根据Hyperf官方文档安装:

# 下载并运行 hyperf/hyperf 镜像,并将镜像内的项目目录绑定到宿主机的/mnt/hgfs/www(虚拟机共享目录)
docker run -v /mnt/hgfs/www/hyperf/:/hyperf-skeleton -p 9501:9501 -it --entrypoint /bin/sh hyperf/hyperf:7.4-alpine-v3.9-cli
# 镜像容器运行后,在容器内安装 Composer
wget https://github.com/composer/composer/releases/download/1.8.6/composer.phar

curl -sS https://getcomposer.org/installer | php
chmod u+x composer.phar mv composer.phar /usr/local/bin/composer # 将 Composer 镜像设置为阿里云镜像,加速国内下载速度 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer # 通过 Composer 安装 hyperf/hyperf-skeleton 项目 composer create-project hyperf/hyperf-skeleton # 进入安装好的 Hyperf 项目目录 cd hyperf-skeleton # 启动 Hyperf php bin/hyperf.php start

  接下来,就可以在 /mnt/hgfs/www/ 中看到您安装好的代码了。由于 Hyperf 是持久化的 CLI 框架,当您修改完您的代码后,通过 CTRL + C 终止当前启动的进程实例,并重新执行php bin/hyperf.php start启动命令即可。

热更新/热重载

  • ha-ni-cc/hyperf-watch 一个基于 Swoole 实现的通用热更新组件

git地址下载:https://github.com/ha-ni-cc/hyperf-watch.git

将'watch'文件放在项目更目录下,在容器中执行:

启动监听:

php watch

启动监听并删除代理类缓存(./runtime/container):

php watch -c

退出监听:

Control + C

安装 Wsdebug

git地址 :https://github.com/lamplife/wsdebug

注意运行docker时同步多个端口:

docker run -v /mnt/hgfs/www/hlyes_v1/:/hlyes -p9500:9500 -p 9501:9501  -p 9503:9503 -p 9504:9504 -p 9600:9600  -p 9601:9601 -p 9602:9602 -it --entrypoint /bin/sh hyperf/hyperf:7.2-alpine-v3.9-cli

 

指定容器ID

docker run -v /mnt/hgfs/www/hlyes_v1:/hlyes -p 9600:9600 -p 9604:9604 -p 9601:9601 -p 9500:9500 -it --entrypoint /bin/sh 9e7b52913c1a

  

进入已启动的容器
docker exec -it 775c7c9ee1e1 /bin/bash

  启动redis

redis-server &

 通过docker-compose启动

安装

#curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

#chmod +x /usr/local/bin/docker-compose
#docker-compose --version
#docker-compose version

  编写docker-compose.yml

 

version: '2'
services:
  org:
    build:
      context: ./dev_hyperf
    networks:
      - dev_hyperf
    volumes:
      - /mnt/hgfs/www/hlyes_v1/hlyes_v1_org:/www
    ports:
      - "9601:9601"
  api:
    build:
      context: ./dev_hyperf
    ports:
      - "9500:9500"
    networks:
      - dev_hyperf
    volumes:
      - /mnt/hgfs/www/hlyes_v1/hlyes_v1_api:/www
  center:
    build:
      context: ./dev_hyperf
    ports:
      - "9501:9501"
      - "9604:9604"
    networks:
      - dev_hyperf
    volumes:
      - /mnt/hgfs/www/hlyes_v1/hlyes_v1_center:/www
  cache_server:
    image: "redis:6.0.4"
    networks:
      - dev_hyperf
networks:
  dev_hyperf:

  编写Dockerfile

docker_composer/dev_hyperf/Dockerfile

FROM hyperf/hyperf:7.4-alpine-v3.9-cli

WORKDIR /www
# CMD ["php","bin/hyperf.php","start"]
CMD php watch

 Dockerfile执行sh

FROM hyperf/hyperf:7.4-alpine-v3.9-cli
 
##
# ---------- env settings ----------
##
# --build-arg timezOne=Asia/Shanghai
ARG timezone

ENV TIMEZOnE=${timezone:-"Asia/Shanghai"} \
    APP_ENV=dev
# update
RUN  set -ex \
    && apk update \
    # show php version and extensions
    && php -v \
    && php -m \
    #  ---------- some config ----------
    && cd /etc/php7 \
    # - config PHP
    && { \
        echo "upload_max_filesize=100M"; \
        echo "post_max_size=108M"; \
        echo "memory_limit=1024M"; \
        echo "date.timezOne=${TIMEZONE}"; \
    } | tee conf.d/99-overrides.ini \
    # - config timezone
    && ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \
    && echo "${TIMEZONE}" > /etc/timezone \
    # ---------- clear works ----------
    && rm -rf /var/cache/apk/* /tmp/* /usr/share/man \
    && echo -e "\033[42;37m Build Completed :).\033[0m\n"
    

WORKDIR /www
CMD sh /www/entrypoint.sh

  

entrypoint.sh
#! /bin/bash
 
 php /www/hlyes_v1_center/watch &
 php /www/hlyes_v1_crm/watch &
 php /www/hlyes_v1_fms/watch &
 php /www/hlyes_v1_mms/watch &
 php /www/hlyes_v1_oms/watch &
 php /www/hlyes_v1_org/watch &
 php /www/hlyes_v1_pms/watch &
 php /www/hlyes_v1_srm/watch &
 php /www/hlyes_v1_api/watch &
 php /www/hlyes_v1_tms/watch 

  删除容器

sudo docker rm $(sudo docker ps -a -q)

  

 

 启动运行

docker-compose -f /mnt/hgfs/www/docker_compose/dev-compose.yml  up

docker-compose -f E:\www\docker_compose\dev-compose.yml up -d --build

  

服务注册:
consul agent -dev -client 0.0.0.0 -ui

  

redis 常用命令

redis-server /usr/local/redis/etc/redis.conf //启动redis
 
pkill redis  //停止redis

  


推荐阅读
  • Docker基础入门与环境配置指南
    本文介绍了Docker——一款用Go语言编写的开源应用程序容器引擎。通过Docker,用户能够将应用及其依赖打包进容器内,实现高效、轻量级的虚拟化。容器之间采用沙箱机制,确保彼此隔离且资源消耗低。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • 本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ... [详细]
  • C/C++ 应用程序的安装与卸载解决方案
    本文介绍了如何使用Inno Setup来创建C/C++应用程序的安装程序,包括自动检测并安装所需的运行库,确保应用能够顺利安装和卸载。 ... [详细]
  • 利用Docker部署JupyterHub以支持Python协同开发
    本文介绍了如何通过Docker容器化技术安装和配置JupyterHub,以实现多用户的Python开发环境,特别适合团队协作场景。 ... [详细]
  • selenium通过JS语法操作页面元素
    做过web测试的小伙伴们都知道,web元素现在很多是JS写的,那么既然是JS写的,可以通过JS语言去操作页面,来帮助我们操作一些selenium不能覆盖的功能。问题来了我们能否通过 ... [详细]
  • 本文介绍了如何通过安装和配置php_uploadprogress扩展来实现文件上传时的进度条显示功能。通过一个简单的示例,详细解释了从安装扩展到编写具体代码的全过程。 ... [详细]
  • STM32代码编写STM32端不需要写关于连接MQTT服务器的代码,连接的工作交给ESP8266来做,STM32只需要通过串口接收和发送数据,间接的与服务器交互。串口三配置串口一已 ... [详细]
  • 本文详细介绍了如何将Google设置为国际版界面的方法,适合对调整Google界面设置感兴趣的用户。通过本文提供的步骤,您将能够轻松地将Google设置为您首选的语言版本,即使在中国大陆地区也能实现这一目标。 ... [详细]
  • 将XML数据迁移至Oracle Autonomous Data Warehouse (ADW)
    随着Oracle ADW的推出,数据迁移至ADW成为业界关注的焦点。特别是XML和JSON这类结构化数据的迁移需求日益增长。本文将通过一个实际案例,探讨如何高效地将XML数据迁移至ADW。 ... [详细]
  • 本文探讨了在 APICloud 平台使用 execScript 方法时如何正确传递对象参数,并提供了详细的示例和解释。 ... [详细]
  • Python网络编程:深入探讨TCP粘包问题及解决方案
    本文详细探讨了TCP协议下的粘包现象及其产生的原因,并提供了通过自定义报头解决粘包问题的具体实现方案。同时,对比了TCP与UDP协议在数据传输上的不同特性。 ... [详细]
  • 本文提供了一个详尽的前端开发资源列表,涵盖了从基础入门到高级应用的各个方面,包括HTML5、CSS3、JavaScript框架及库、移动开发、API接口、工具与插件等。 ... [详细]
author-avatar
兄弟465748208_279
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有