docker安装环境:阿里云学生主机云服务器ECS
操作系统:CentOS 7.3 64位
CPU: 1核
内存: 2 GiB
安装参考:阿里云官方docker安装文档.
本文通过脚本安装
更新yum源:
sudo yum update
下载脚本并安装:
curl -sSL https://get.docker.com/ | sh
启动服务:
sudo service docker start
验证docker:
sudo docker run hello-world
出现hello from Docker!表示docker环境安装成功
查看docker版本:
docker -v
本文通过Python的pip工具安装compose
安装依赖:
yum -y install epel-release
安装PIP:
yum -y install python-pip
升级PIP:
pip install --upgrade pip
pip --version
pip install -U docker-compose
sudo docker-compose --version
version: '2'
services:
master:
image: redis
container_name: redis-master
restart: always
command: redis-server --port 6379 --requirepass root --appendonly yes
ports:
- 6379:6379
volumes:
- ./data:/data
slave1:
image: redis
container_name: redis-slave-1
restart: always
command: redis-server --slaveof 172.16.255.161 6379 --port 6380 --requirepass root --masterauth root --appendonly yes
ports:
- 6380:6380
volumes:
- ./data:/data
slave2:
image: redis
container_name: redis-slave-2
restart: always
command: redis-server --slaveof 172.16.255.161 6379 --port 6381 --requirepass root --masterauth root --appendonly yes
ports:
- 6381:6381
volumes:
- ./data:/data
# 指定docker文件的版本
version: '2'
# 多容器的集合环境
services:
# 主机标识
master:
# 指定服务所使用的镜像
image: redis
# 容器别名为Redis主机
container_name: redis-master
# 总是开机自启
restart: always
# 容器执行时的命令,requirepass root 指定Redis的密码为root,appendonly 开启数据持久化
command: redis-server --port 6379 --requirepass root --appendonly yes
# 容器的端口映射到宿主机端口6379,
ports:
- 6379:6379
# 宿主机路径:容器路径 数据的持久化文件,从宿主机路径指向容器的路径
volumes:
- ./data:/data
# 从机标识
slave1:
image: redis
# 指定从机的容器名
container_name: redis-slave-1
restart: always
# slaveof 依赖于172.16.255.161(阿里云内网地址)6379端口的从机,映射到宿主机的6380端口
command: redis-server --slaveof 172.16.255.161 6379 --port 6380 --requirepass root --masterauth root --appendonly yes
ports:
- 6380:6380
volumes:
- ./data:/data
docker-compose up -d
docker ps
到此docker-compose部署一主两从Redis已经完成
进入主Redis容器
docker exec -it (容器id) bash
redis-cli
auth root
输入存储的键值
set hello redis
keys hello
Ctrl+C 退出Redis客户端,exit退出当前的主机容器
进入从机容器,进入从机的Redis客户端
docker exec -it (从机容器id) bash
redis-cli -p 6380
auth root
get hello
set a b