docker 书

最近学习docker容器:下面是个人的作品。QQ群:528081043   欢迎大家的加入。一同交流。

                                                                         Docker书

一、安装docker

  1. 更新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版本

扫描二维码关注公众号,回复: 5986333 查看本文章

         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

  1. 重启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镜像的主从命令

  1. 进入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

  1. 启动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
  1. 分别进入三个哨兵的容器
docker exec -it redis-sentinel1 bash

docker exec -it redis-sentinel2 bash

docker exec -it redis-sentinel3 bash
  1. 分别配置三个哨兵的配置文件
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
  1. 分别启动三个哨兵节点
redis-sentinel /etc/redis-sentinel.conf &
  1. 最后查看哨兵的日志文件
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

版权声明:本文为博主原创文章,转载请附上博文链接!

 

猜你喜欢

转载自blog.csdn.net/qq_35396905/article/details/83038550