美文网首页
mac:MAMP PRO搭配php开发环境,使用docker安装

mac:MAMP PRO搭配php开发环境,使用docker安装

作者: 韩小禹 | 来源:发表于2020-07-06 22:11 被阅读0次

    docker中安装mongo

    • 拉取mongo镜像到本地
    docker pull mongo   # 下载镜像
    
    docker images   # 查看镜像
    
    • 启动mongo镜像
    docker run --privileged -itd --name mongo -p 27017:27017 -v /path/to/mongoData/db:/data/db  mongo --auth 
    
    # --auth :需要用户名和密码才能链接,这个参数可以不要
    # -p :将端口暴露出来
    # --name : 给容器命名
    
    • 之后就可以通过命令行或者图形化软件链接容器中的mongo了

    docker中安装redis

    • 拉取redis镜像到本地
    docker pull redis #  下载镜像
    
    docker images # 查看镜像
    
    • 启动redis镜像
    docker run --privileged -itd --name redis -p 6379:6379 redis
    

    docker中安装rabbitMq

    • 拉取镜像到本地
    # docker pull rabbitmq:management 带有web管理界面
    # docker pull rabbitmq 不带web管理界面
    docker pull rabbitmq:management  
    
    • 启动rabbitmq镜像
    docker run --privileged -dit --name rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:managemen
    
    # -e RABBITMQ_DEFAULT_USER=admin  设置管理员用户名为admin
    # -e RABBITMQ_DEFAULT_PASS=admin  设置管理员密码为admin
    # -p 15672 web管理界面端口号
    # -p 5672 服务端口号 
    

    安装php的amqp拓展

    • 下载拓展包
    curl 'http://pecl.php.net/get/amqp-1.9.3.tgz' -o amqp-1.9.3.tgz
    
    • 解压拓展包
    tar -zxvf amqp-1.9.3.tgz 
    
    • 进入到解压的拓展包中执行phpize命令
    cd amqp-1.9.3  
    
    # 执行如下命令
    # 下面是我的phpize的路径
    /Applications/MAMP/bin/php/php7.2.22/bin/phpize
    

    安装amqp拓展

    • 安装rabbitmq-c
    brew install rabbitmq-c
    
    • 然后使用pecl来安装拓展
    /Applications/MAMP/bin/php/php7.2.22/bin/pecl install amqp
    
    # 运行pecl install amqp命令时会有一个提问,如下:
    # Set the path to librabbitmq install prefix [autodetect] :
    # 如果rabbitmq-c是通过brew 安装的,那么这里可以直接回车。
    # 如果是别的方式,这里就需要写具体的路径信息。
    # 按下回车键后,开始编译,看到下列提示时,说明安装成功,需要按照下面的提示去做。
    # configuration option "php_ini" is not set to php.ini location
    # You should add "extension=amqp.so" to php.ini
    

    通过docker-compose 编排服务

    • 服务多了之后每次启动服务都需要执行多次docker run ...命令,比较麻烦。这是可以使用docker-compose来编排统一启动服务。
    # 1:创建一个.yml格式的文件
    # 2:编辑文件内容
    # 注意:根据yml格式要求,每个冒号后面需要跟一个空格,否则报错。
    version: "3.1"
    services: 
      mongodb: 
        restart: always
        image: mongo
        ports: 
        - "27017:27017"
        volumes: 
        - "/path/to/mongoData/db:/data/db"
      redis: 
        restart: always
        image: redis
        ports: 
        - "6379:6379"
      rabbitmq: 
        restart: always
        image: rabbitmq:management
        ports: 
        - "15672:15672"
        - "5672:5672"
        environment: 
        - RABBITMQ_DEFAULT_USER=admin
        - RABBITMQ_DEFAULT_PASS=admin
    
    • 启动
    docker-compose up -d
    
    aaa@MacBook-Pro dockerfiles % docker-compose up -d           
    Creating network "dockerfiles_default" with the default driver
    Creating dockerfiles_rabbitmq_1 ... done
    Creating dockerfiles_redis_1    ... done
    Creating dockerfiles_mongodb_1  ... done
    
    • 查看状态
    docker-compose ps
    
             Name                       Command               State                                             Ports                                           
    ------------------------------------------------------------------------------------------------------------------------------------------------------------
    dockerfiles_mongodb_1    docker-entrypoint.sh mongod      Up      0.0.0.0:27017->27017/tcp                                                                  
    dockerfiles_rabbitmq_1   docker-entrypoint.sh rabbi ...   Up      15671/tcp, 0.0.0.0:15672->15672/tcp, 25672/tcp, 4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp
    dockerfiles_redis_1      docker-entrypoint.sh redis ...   Up      0.0.0.0:6379->6379/tcp               
    
    • 关闭所有通过docker-compose开启的容器
    docker-compose stop
    
    aaa@MacBook-Pro dockerfiles % docker-compose stop
    Stopping dockerfiles_rabbitmq_1 ... done
    Stopping dockerfiles_redis_1    ... done
    Stopping dockerfiles_mongodb_1  ... done
    
    • 重新启动所有通过docker-compose开启的容器
    aaa@MacBook-Pro dockerfiles % docker-compose start
    Starting mongodb  ... done
    Starting redis    ... done
    Starting rabbitmq ... done
    
    • 删除所有通过docker-compose开启的容器
    aaa@MacBook-Pro dockerfiles % docker-compose down
    Stopping dockerfiles_mongodb_1  ... done
    Stopping dockerfiles_rabbitmq_1 ... done
    Stopping dockerfiles_redis_1    ... done
    Removing dockerfiles_mongodb_1  ... done
    Removing dockerfiles_rabbitmq_1 ... done
    Removing dockerfiles_redis_1    ... done
    

    相关文章

      网友评论

          本文标题:mac:MAMP PRO搭配php开发环境,使用docker安装

          本文链接:https://www.haomeiwen.com/subject/wdhnqktx.html