Docker基础/搭建redis主从

安装

https://docs.docker.com/install/linux/docker-ee/centos/#repo-install-and-upgrade

sudo yum -y install docker-ee docker-ee-cli containerd.io
sudo systemctl start docker

测试

sudo docker run hello-world
docker ps -a

OK!安装成功……

基础

这里可以通过docker help获取docker命令

具体命令则可以通过docker CMD --help方式查看,如

docker start --help

Docker常用命令
命令作用
docker images

查看已有的镜像

docker run containerName

运行

docker logs containerName/containerId

动态查看容器日志

docker stop containerName/containerId

关闭容器

docker start containerName/containerId

启动容器

docker restart containerName/containerId

重启容器

docker rm –f containerName/containerId

删除容器

docker rmi -f IMAGE_ID/ REPOSITORY:TAG

删除镜像

docker search images_name

查看镜像列表

docker pull images_name

从公网拉取一个镜像

docker command --help

查看帮助

docker port containerId

看容器的端口映射情况

docker ps

查看正在运行的容器

docker ps -a

查看所有的容器

docker exec -it containerId /bin/bash

进入容器

docker network ls

查看docker网络

 docker top containerName

查看容器pid

文档

http://www.dockerinfo.net/document

https://docs.docker.com/storage/

容器与镜像

https://www.cnblogs.com/bethal/p/5942369.html

搭建第一个Docker容器

因为在下载官方镜像点的镜像国内访问速度太慢,所以先进行修改

vim /etc/docker/daemon.json
{
    "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}

 然后重启守护进程

sudo systemctl daemon-reload
sudo systemctl restart docker

下载镜像

下载所需镜像 

docker pull ubuntu
docker pull django
docker pull haproxy
docker pull redis

因为现在是同一主机下搭建容器应用栈的环境,所以只需要完成容器的互联来实现容器间的通信即可,这里采用docker run的--link命令来建立容器间的互联关系

启动容器

启动redis容器

docker run -td --name redis-master docker.io/redis /bin/bash
docker run -td --name redis-slave1 --link redis-master:master docker.io/redis /bin/bash
docker run -td --name redis-slave2 --link redis-master:master docker.io/redis /bin/bash

启动django容器

docker run -td --name APP1 --link redis-master:db -v ~/Projects/Django/App1:/usr/src/app docker.io/django /bin/bash
docker run -td --name APP2 --link redis-master:db -v ~/Projects/Django/App2:/usr/src/app docker.io/django /bin/bash

启动haproxy 

docker run -td --name HAProxy --link APP1:APP1 --link APP2:APP2 -p 6301:6301 -v ~/Projects/HAProxy:/tmp docker.io/haproxy /bin/bash

容器节点配置

主节点配置

首先找到redis-master的挂载目录,然后进入

docker inspect redis-master | grep Mounts -A 10

cd /var/lib/docker/volumes/210ce5e367863f3e59ab2faefba18902c89fe0b677760465099085b2abf50c18/_data

先看下redis-master的容器IP

 docker inspect --format '{{ .NetworkSettings.IPAddress }}' redis-master

新开一个终端,下载并解压redis 

wget http://download.redis.io/releases/redis-5.0.7.tar.gz
tar -zxvf redis-5.0.7.tar.gz

修改redis.conf文件

bind 172.17.0.2
deamonize yes
pidfile /var/run/redis.pid

将redis.conf文件copy进该目录中:

此时在docker容器中redis目录下也会出现相应的redis.conf文件

docker exec -it 490 /bin/bash

将它copy到redis工作目录并启动

cp redis.conf /usr/local/bin/
cd /usr/local/bin/
redis-server redis.conf 

上面就是Redis Master容器节点的配置

从节点配置

首先找到redis-slave1的挂载目录,然后进入

docker inspect redis-slave1 | grep Mounts -A 10

cd /var/lib/docker/volumes/778d408ad5df0a2e3fc9f4a79835a337d4a488ed060f741ecda3550c5025bd4b/_data/

跟上面master拷贝redis.conf文件的方式相同,然后修改配置文件

bind 172.17.0.3
deamonize yes
pidfile /var/run/redis.pid
slaveof master 6379

进入容器

docker exec -it redis-slave2 /bin/bash

启动redis

cp redis.conf /usr/local/bin/
cd /usr/local/bin/
redis-server redis.conf
redis-cli -h 172.17.0.3 -p 6379

打开新的终端测试主从

docker exec -it redis-master /bin/bash
cd /usr/local/bin/
redis-cli -h 172.17.0.2 -p 6379

OK~~~Redis主从可以了另一个从步骤相同!!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值