热门标签 | 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中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • CentOS7.8下编译muduo库找不到Boost库报错的解决方法
    本文介绍了在CentOS7.8下编译muduo库时出现找不到Boost库报错的问题,并提供了解决方法。文章详细介绍了从Github上下载muduo和muduo-tutorial源代码的步骤,并指导如何编译muduo库。最后,作者提供了陈硕老师的Github链接和muduo库的简介。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 标题: ... [详细]
  • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • 进入配置文件目录:[rootlinuxidcresin-4.0.]#cdusrlocalresinconf查看都有哪些配置文件:[rootlinuxid ... [详细]
  • 这个问题困扰了我两天,卸载Dr.COM客户端(我们学校上网要装这个客户端登陆服务器,以后只能在网页里输入用户名和密码了),问题解决了。问题的现象:在实验室机台式机上安装openfire和sp ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
  • Telnet的使用(Telnet远程连接Linux)
    一、环境描述:客户端:Win10操作系统 ... [详细]
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社区 版权所有