Docker搭建redis主从复制

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Jaystrong/article/details/83662463

Centos 安装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版本
 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"]
}

docker快速入门

docker启动容器 		docker start 容器ID
docker删除		docker rm 容器ID
docker启动所有容器	docker start  $(docker ps -a -q)
docker停止所有容器	docker stop $(docker ps -a -q) 
docker删除所有容器	docker rm $(docker ps -a -q)

创建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

把该文件放在linux服务器上,创建文件夹/usr/docker/redis,放在该目录下
在dockerfile目录 执行下面代码,注意后面上下文

docker build -t redis-test  .

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

容器网络

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

docker network ls 查看默认的网络

NETWORK ID          NAME                DRIVER              SCOPE
36d9a43651f3        bridge              bridge              local
d2a9464fcf02        host                host                local
29c43f231e80        none                null                local

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

bridge:桥接网络

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

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镜像 创建容器
代码如下:

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

参数说明:
具体可以参看一些文档
http://www.runoob.com/docker/docker-run-command.html
http://www.dockerinfo.net/docker容器-2

-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-p: 端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--ip: 为容器制定一个固定的ip 
--net: 指定网络模式

这样,我们创建了2个容器,来一起查看下结果

docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
0083e4c571c9        redis               "/bin/bash"         2 weeks ago         Up 25 hours         0.0.0.0:6381->6379/tcp   redis-slave
b11ebf10e330        redis               "/bin/bash"         2 weeks ago         Up 25 hours         0.0.0.0:6380->6379/tcp   redis-master

展开阅读全文

没有更多推荐了,返回首页