zoukankan      html  css  js  c++  java
  • docker学习(四)

    此文章假设你已经安装了docker,如果没有安装请查询本博客docker安装章节 

    容器网络

    docker network ls  查看默认的网络

    Docker安装后,默认会创建下面三种网络类型

    在启动容器时使用  --network bridge 指定网络类型

    bridge:桥接网络

    默认情况下启动的Docker容器,都是使用 bridgeDocker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对应的IP地址,这个就导致重启下,DockerIP地址就变了

    none:无指定网络

    使用 --network=none docker 容器就不会分配局域网的IP

    host: 主机网络

    使用 --network=host,此时,Docker 容器的网络会附属在主机上,两者是互通的。

    例如,在容器中运行一个Web服务,监听8080端口,则主机的8080端口就会自动映射到容器中

    指定自定义网络

    因为默认的网络不能制定固定的地址,所以我们将创建自定义网络,并指定网段:172.10.0.0/16 并命名为mynetwork,指令

    如:docker network create  --subnet=172.10.0.0/16  mynetwork

    建立错误可以删除网络 

    docker network rm mynetwork

    准备工作

    创建目录

    mkdir -p /wwwroot/docker/redis

    创建dockerfile文件

    cd /wwwroot/docker/redis/

    touch Dockerfile

    vi 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 build -t redis  .

    创建完成后可以docker images查看生成的镜像

    接下来使用此docker镜像 创建容器(创建主redis)

    docker run -itd --name  redis-master  --net mynetwork  -p 6380:6379  --ip 172.10.0.2  redis 

     redis-master 容器名字

    redis 镜像名字

    参数说明:

       具体可以参看一些文档

    http://www.runoob.com/docker/docker-run-command.html

    http://www.dockerinfo.net/docker%E5%AE%B9%E5%99%A8-2

    -d: 后台运行容器,并返回容器ID;

    -i: 以交互模式运行容器,通常与 -t 同时使用;

    -p: 端口映射,格式为:主机(宿主)端口:容器端口

    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

    --ip: 为容器制定一个固定的ip

    --net: 指定网络模式

    查看容器

    docker ps -a 或者

    docker container

    停止容器

    docker stop  redis-master

     删除容器

    docker rm  redis-master

    查看容器ip地址

    docker network inspect mynetwork  

    创建从redis

    docker run -itd  --name  redis-slave  --net mynetwork  -p 6381:6379  --ip 172.10.0.3  redis 

     

     现在主从结构是

    容器名称

    容器IP地址

    映射端口号

    宿主机IP地址

    服务运行模式

    Redis-master

    172.10.0.2

    6380 -> 6379

    172.168.17.3

    Master

    Redis-slave

    172.10.0.3

    6381 -> 6379

    172.168.17.3

    Slave

     

     

     

     

     

     

     

    设置redis

    分别进入主从redis 进行配置

    进入redis主容器

    docker exec -it redis-master bash

    修改配置文件

    vi /etc/redis.conf

    配置监听ip,配置密码

    bind 0.0.0.0

    requirepass 123456

     

    启动redis

    redis-server /etc/redis.conf &

    进入redis从容器

    docker exec -it redis-slave bash

    配置监听ip

    bind 0.0.0.0

    配置密码

    requirepass 123456

    配置主redis ip

    slaveof 172.10.0.2 6379

    配置主redis密码

     masterauth 123456

    启动redis 

    redis-server /etc/redis.conf &

    测试

    主redis

    从redis 

     

     关闭主从:

    在从节点中redis-cli 中输入

    slaveof no one

    就断开了主从关系

    可以通过 info replication 命令查看

     恢复主从复制

  • 相关阅读:
    mysql数据与Hadoop之间导入导出之Sqoop实例
    如何将mysql数据导入Hadoop之Sqoop安装
    大数据场景下数据异构之 Mysql实时写入HBase(借助canal kafka SparkStreaming)
    224 绝对路径与相对路径
    223 File类的常用方法
    222 File类概述
    221 输入输出流概述
    220 多线程总结
    219 线程间通信
    218 线程同步-synchronized
  • 原文地址:https://www.cnblogs.com/houss/p/13212148.html
Copyright © 2011-2022 走看看