最近学习docker容器:下面是个人的作品。QQ群:528081043 欢迎大家的加入。一同交流。
Docker书
一、安装docker
- 更新update到最新的版本
yum update
2.卸载老版本docker
yum remove docker docker-common docker-selinux docker-engine
3.安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
4.设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5.查看docker版本
yum list docker-ce --showduplicates|sort -r
6.安装docker
yum install docker-ce-18.03.1.ce -y
7.启动docker
systemctl start docker
8.加入开机自启
systemctl enable docker
9.配置国内镜像
vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
二、建立镜像
需要进入目录/etc/docker/redis下创建dockerfile文件,dockerfile文件具体内容如下:
FROM centos:latest
RUN groupadd -r redis && useradd -r -g redis redis
RUN yum -y update && yum -y install epel-release && yum -y install redis && yum -y install net-tools
EXPOSE 6379
- 重启docker
systemctl restart docker
2.生成镜像
docker build -t redis .
3.查看镜像
docker images
三、创建容器
1、查看默认的网络
docker network ls
2.指定自定义网络
docker network create --subnet=172.10.0.0/16 mynetwork
3.创建容器
docker run -itd --name redis-slave2 --net mynetwork -p 6383:6379 --ip 172.11.0.5 redis
4.查看容器
docker ps -a 或者 docker container
5.删除容器
docker rm redis-slave2
6.查看容器ip地址
docker network inspect mynetwork
7.查看镜像
docker images
8.停止所容器
docker stop $(docker ps -a -q) 或者 docker rm $(docker ps -a -q)
四、docker容器redis镜像的主从命令
- 进入redis-slave2容器
docker exec -it redis-slave2 bash
2.进入redis配置文件
vi /etc/redis.conf
@1、 在从服务器的配置文件中加入:slaveof <masterip> <masterport>
例如:slaveof 172.11.0.2 6379
@2、 bind 127.0.0.1 改为 bind 0.0.0.0
@3、 protected-mode yes 改为 protected-mode no
- 启动redis服务
redis-server /etc/redis.conf
2.进入redis数据库中
redis-cli
五、使用dockerfile构建镜像并运行一个容器
1.新建一个目录,如redis,我这里把所有的dockerfile项目放在/usr/docker/redis目录下
mkdir -p /usr/docker/redis
cd /usr/docker/redis
2.在/usr/docker/redis下创建Dockerfile文件
touch Dockerfile
3.Dockerfile文件内容如下
#基于一个基础镜像来创建
FROM centos:latest
#创建redis用户和组
RUN groupadd -r redis && useradd -r -g redis redis
#更新系统并安装redis
RUN yum -y update \
&& yum -y install epel-release \
&& yum -y install redis \
&& yum -y install net-tools
#在容器内部创建一个目录
RUN mkdir -p /config && \
chown -R redis:redis /config#拷贝Dockerfile所在目录中的redis-master.conf到容器中的/config目录下
COPY ./config/redis-master.conf /config
ADD ./config/redis-slave.conf /config
# COPY redis-slave.conf / config
VOLUME /usr/docker/config
WORKDIR /config
EXPOSE 6379
六、哨兵
1.分别创建三个哨兵容器
docker run -itd --name redis-sentinel1 --net mynetwork -p 22530:22530 --ip 172.11.0.9 redis
docker run -itd --name redis-sentinel2 --net mynetwork -p 22531:22531 --ip 172.11.0.10 redis
docker run -itd --name redis-sentinel3 --net mynetwork -p 22532:22532 --ip 172.11.0.11 redis
- 分别进入三个哨兵的容器
docker exec -it redis-sentinel1 bash
docker exec -it redis-sentinel2 bash
docker exec -it redis-sentinel3 bash
- 分别配置三个哨兵的配置文件
vi /etc/redis-sentinel.conf
bind 0.0.0.0
protected-mode no
sentinel monitor mymaster 172.11.0.2 6379 2 #这里的ip是你要监控redis的主节点ip
- 分别启动三个哨兵节点
redis-sentinel /etc/redis-sentinel.conf &
- 最后查看哨兵的日志文件
vi /var/log/redis/sentinel.log
这是我所建立的哨兵监控redis的一主多从的环境部署
容器名称 |
容器IP地址 |
映射端口号 |
服务运行模式 |
redis-sentinel1 |
172.11.0.9 |
22530 -> 22530 |
sentinel |
redis-sentinel2 |
172.11.0.10 |
22531 -> 22531 |
sentinel |
redis-sentinel3 |
172.11.0.11 |
22532 -> 22532 |
sentinel |
redis-master |
172.11.0.2 |
6380 -> 6379 |
Master |
redis-master2 |
172.11.0.6 |
6384 -> 6379 |
Master2 |
redis-slave |
172.11.0.3 |
6381 -> 6379 |
Slave |
redis-slave1 |
172.11.0.4 |
6382 -> 6379 |
Slave |
redis-slave2 |
172.11.0.5 |
6383 -> 6379 |
Slave |
---------------------
作者:追梦人的博客
来源:CSDN
原文:https://blog.csdn.net/qq_35396905/article/details/83038550?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!