docker中安装mongo
docker pull mongo # 下载镜像
docker images # 查看镜像
docker run --privileged -itd --name mongo -p 27017:27017 -v /path/to/mongoData/db:/data/db mongo --auth
# --auth :需要用户名和密码才能链接,这个参数可以不要
# -p :将端口暴露出来
# --name : 给容器命名
- 之后就可以通过命令行或者图形化软件链接容器中的mongo了
docker中安装redis
docker pull redis # 下载镜像
docker images # 查看镜像
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
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
cd amqp-1.9.3
# 执行如下命令
# 下面是我的phpize的路径
/Applications/MAMP/bin/php/php7.2.22/bin/phpize
安装amqp拓展
brew install rabbitmq-c
/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
网友评论