利用docker-compose安装redis服务
1.首先拉去镜像,命令如下 docker pull redis:5.0
2.配置docker-compose.yml文本
说明下:
这个docker-compose.yml文件可以建到docker里的哪个文件都可以,只不过在执行命令时,需要到该目录下执行相应命令才可以
win7下安装的docker,默认是带有docker-compose的,但是在docker容器中是不能使用的,你链接到vm里时,执行 docker-compose --version 是会提示命令不存在的,解决办法如下
上官网下载docker-compose包下载地址
切换用户root sudo -i 切换到root用户
执行以下命令
输出 docker-compose --version ,显示有值则安装成功
安装成功后,需要编写yml这个文件
内容如下:
curl -L github/docker/compose/releases/download/1.25.0-
rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-
compose
chmod +x /usr/local/bin/docker-compose
version: '3'
# 定义三个服务nginx,php,mysql
services:
nginx:
# 依赖php服务,意味着在启动nginx之前先启动php
depends_on:
- php
- redis
# nginx镜像的路径
image: nginx:1.17
# 这样使nginx容器把网站文件和目录存放到主机目录中,持久化和方便管理
volumes:
#分号前面的是vm里的路径,这个路径是映射win7下的目录的,便于修改和查看,分号后面的是服务容器
里的对应的目录
- /var/www/html:/var/www/html
- /var/www/nginx/log:/var/log/nginx
- /var/www/nginx/conf:/etc/nginx/conf.d
# nginx意外退出时自动重启
restart: always
# 映射80和443端口
ports:
- "8080:80"
- "1443:443"
# 容器名称
container_name: mynginx
redis:
image : redis:5.0
restart : always
ports :
- "6379:6379"
volumes :
- /var/www/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
- /var/www/redis/data:/data
command:
redis-server
container_name: myredis
php:
depends_on:
- mysql
image : php:7.3-fpm
restart : always
volumes:
- /var/www/html:/var/www/html
- /var/www/php/conf:/usr/local/etc/php
- /var/www/php/log:/var/log/php
ports:
- "9000:9000"
container_name: php73
通过 docker-compose up -d 在后台创建 并运行,开始时可以省略-d参数
这个只安装的redis服务端口,由于客户端我打算使用predis来实现,并没有安装phpredis扩展
安装phpredis扩展
进入到php容器里,我这里中php73,命令是 docker exec -it php73 bash ,下载phpredis扩展
curl -L -o /tmp/redis.tar.gz
github/phpredis/phpredis/archive/5.0.2.tar.gz 这个可以根据你自己
的版本来定
解压并移动到指定目录
使用docker自带的脚本来安装扩展
mysql:
image: mysql:5.7
volumes:
- /var/www/mysql/log:/var/log/mysql
- /var/www/mysqldata:/var/lib/mysql
- /var/wwww/mysql/conf:/etc/mysql/mysql.conf.d
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
--innodb-use-native-aio=0
--explicit_defaults_for_timestamp
restart: always
ports:
- "33060:3306"
# 设置MYSQL_ROOT_PASSWORD环境变量,这里是设置mysql的root密码。这里为root。
environment:
MYSQL_ROOT_PASSWORD: root
container_name: myMysql
tar xfz /tmp/redis.tar.gz
rm -r /tmp/redis.tar.gz
mkdir -p /usr/src/php/ext
mv phpredis-3.1.3 /usr/src/php/ext/redis
安装好后,重启php容器,查看phpinfo(),前题是你得提前退出php容器
二.安装swoole服务(和安装redis扩展一样)
三.安装elasticsearch服务
1. 下载卖游戏平台镜像 docker pull elasticsearch:6.8.3
2.利用docker-compose 来管理容器
配置docker-compose.yml文件,如下
docker-php-ext-install redis
docker restart php73
version: '3'
# 定义三个服务nginx,php,mysql
services:
nginx:
# 依赖php服务,意味着在启动nginx之前先启动php
depends_on:
- php
- redis
# nginx镜像的路径
image: nginx:1.17
# 这样使nginx容器把网站文件和目录存放到主机目录中,持久化和方便管理
volumes:
- /var/www/html:/var/www/html
- /var/www/nginx/log:/var/log/nginx
- /var/www/nginx/conf:/etc/nginx/conf.d
# nginx意外退出时自动重启
restart: always
# 映射80和443端口
ports:
- "8080:80"
- "1443:443"
# 容器名称
container_name: mynginx
redis:
image : redis:5.0
restart : always
ports :
- "6379:6379"
volumes :
- /var/www/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
- /var/www/redis/data:/data
command:
redis-server
container_name: myredis
#由于本机内存比较小,启动起来,太占内存,暂不启动
# es-master:
# image : elasticsearch:6.8.3
# restart : always
# ports :
# - "9200:9200"
# volumes :
# - /var/www/es/data:/usr/share/elasticsearch/data:rw
# -
/var/www/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticse
arch.yml
# - /var/www/es/log:/usr/share/elasticsearch/logs:rw
# container_name: es-master
# #kibana es的可视化软件
# kibana:
# image: kibana:6.8.3
# container_name: kibana
# ports:
# - "5601:5601"
php:
depends_on:
- mysql
image : php:7.3-fpm
restart : always
volumes:
- /var/www/html:/var/www/html
- /var/www/php/conf:/usr/local/etc/php
- /var/www/php/log:/var/log/php
ports:
- "9000:9000"
container_name: php73
mysql:
image: mysql:5.7
volumes:
- /var/www/mysql/log:/var/log/mysql
- /var/www/mysqldata:/var/lib/mysql
- /var/wwww/mysql/conf:/etc/mysql/mysql.conf.d
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
--innodb-use-native-aio=0
--explicit_defaults_for_timestamp
restart: always
ports:
- "33060:3306"
# 设置MYSQL_ROOT_PASSWORD环境变量,这里是设置mysql的root密码。这里为root。
environment:
MYSQL_ROOT_PASSWORD: root
container_name: myMysql
利用docker-compose安装redis服务1.首先拉去镜像,命令如下docker pull redis:5.02.配置docker-compose.yml文本二.安装swoole服务(和安装redis扩展一样)三.安装elasticsearch服务1. 下载镜像 docker pull elasticsearch:6.8.32.利用docker-compose 来管理容器