天天看點

Docker基礎/搭建redis主從安裝基礎搭建第一個Docker容器

安裝

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
           
Docker基礎/搭建redis主從安裝基礎搭建第一個Docker容器

OK!安裝成功……

基礎

這裡可以通過docker help擷取docker指令

Docker基礎/搭建redis主從安裝基礎搭建第一個Docker容器

具體指令則可以通過docker CMD --help方式檢視,如

docker start --help
           
Docker基礎/搭建redis主從安裝基礎搭建第一個Docker容器

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基礎/搭建redis主從安裝基礎搭建第一個Docker容器

因為現在是同一主機下搭建容器應用棧的環境,是以隻需要完成容器的互聯來實作容器間的通信即可,這裡采用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
           
Docker基礎/搭建redis主從安裝基礎搭建第一個Docker容器

啟動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
           
Docker基礎/搭建redis主從安裝基礎搭建第一個Docker容器

啟動haproxy 

docker run -td --name HAProxy --link APP1:APP1 --link APP2:APP2 -p 6301:6301 -v ~/Projects/HAProxy:/tmp docker.io/haproxy /bin/bash
           
Docker基礎/搭建redis主從安裝基礎搭建第一個Docker容器

容器節點配置

主節點配置

首先找到redis-master的挂載目錄,然後進入

docker inspect redis-master | grep Mounts -A 10
           
Docker基礎/搭建redis主從安裝基礎搭建第一個Docker容器
cd /var/lib/docker/volumes/210ce5e367863f3e59ab2faefba18902c89fe0b677760465099085b2abf50c18/_data
           

先看下redis-master的容器IP

docker inspect --format '{{ .NetworkSettings.IPAddress }}' redis-master
           
Docker基礎/搭建redis主從安裝基礎搭建第一個Docker容器

新開一個終端,下載下傳并解壓redis 

wget http://download.redis.io/releases/redis-5.0.7.tar.gz
tar -zxvf redis-5.0.7.tar.gz
           
Docker基礎/搭建redis主從安裝基礎搭建第一個Docker容器

修改redis.conf檔案

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

将redis.conf檔案copy進該目錄中:

Docker基礎/搭建redis主從安裝基礎搭建第一個Docker容器

此時在docker容器中redis目錄下也會出現相應的redis.conf檔案

docker exec -it 490 /bin/bash
           
Docker基礎/搭建redis主從安裝基礎搭建第一個Docker容器

将它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
           
Docker基礎/搭建redis主從安裝基礎搭建第一個Docker容器
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
           
Docker基礎/搭建redis主從安裝基礎搭建第一個Docker容器
Docker基礎/搭建redis主從安裝基礎搭建第一個Docker容器
Docker基礎/搭建redis主從安裝基礎搭建第一個Docker容器

OK~~~Redis主從可以了另一個從步驟相同!!!