1. 程式人生 > 程式設計 >基於Docker搭建大資料叢集(一)Docker環境部署

基於Docker搭建大資料叢集(一)Docker環境部署

本篇文章是基於Docker搭建大資料集群系列的開篇之作

主要內容

  1. docker搭建
  2. docker部署CentOS
  3. 容器免金鑰通訊
  4. 容器儲存成映象
  5. docker映象釋出

環境

  • Linux 7.6

一、Docker安裝

安裝工具包

yum install -y yum-utils #安裝工具包,缺少這些依賴將無法完成

設定遠端倉庫

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安裝

yum install docker-ce

啟動

systemctl start docker

檢視版本

docker version

校驗

docker run hello-world

二、docker部署CentOS

拉取映象

docker pull centos

檢視是否拉取成功

docker imsages

設定docker網橋,用於分配固定IP

docker network create --subnet=172.15.0.0/16 netgroup

建立容器

--name 容器名稱

-h 容器主機名

--net 設定網橋

--ip 指定容器IP

master

docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-master -h cluster-master --net netgroup --ip 172.15.0.2 centos /usr/sbin/init 複製程式碼

slave1

docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-slave1-h cluster-slave1--net netgroup --ip 172.15.0.3 centos /usr/sbin/init 複製程式碼

slave2

docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-slave2-h cluster-slave2--net netgroup --ip 172.15.0.4 centos /usr/sbin/init 複製程式碼

slave3

docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-slave3-h cluster-slave3--net netgroup --ip 172.15.0.5 centos /usr/sbin/init 複製程式碼

檢視執行中的容器

docker ps

檢視所有容器,包括未執行的容器

docker pa -a

執行容器

docker run 容器名或容器ID

進入容器

docker run exec -ti 容器名或容器ID bash

配置hosts檔案

#安裝VIM編輯工具
yum install vim
vim /etc/hosts
#追加以下內容
172.15.0.2      cluster-master
172.15.0.3      cluster-slave1
172.15.0.4      cluster-slave2
172.15.0.5      cluster-slave3
#將配置檔案傳送到其它節點
scp /etc/hosts cluster-slave1:/etc/
scp /etc/hosts cluster-slave2:/etc/
scp /etc/hosts cluster-slave3:/etc/複製程式碼

三、容器免金鑰通訊

更換阿里YUM源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo複製程式碼

部署OpenSSH

yum -y install openssh openssh-server openssh-clients
systemctl start sshd複製程式碼

生成金鑰

敲出下面命令後連續回車三次

ssh-keygen -t rsa

設定使用者密碼

passwd root

公鑰分發

在所有結點都生成金鑰之後再進行這步

master

ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-master
ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-slave1
ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-slave2
ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-slave3複製程式碼

slave1

ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-master
ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-slave1
ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-slave2
ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-slave3複製程式碼

slave2

ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-master
ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-slave1
ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-slave2
ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-slave3複製程式碼

slave3

ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-master
ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-slave1
ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-slave2
ssh-copy-id  -f -i ~/.ssh/id_rsa.pub cluster-slave3複製程式碼

測試免金鑰

第一次敲下面命令時,會向你詢問,直接打 yes,然後輸入對應主機的訪問密碼

第二次敲ssh命令時,應當直接能夠訪問,無需輸入密碼

退出當前使用者使用命令 exit

master

ssh cluster-master
ssh cluster-slave1
ssh cluster-slave1
ssh cluster-slave1複製程式碼

slave1

ssh cluster-master
ssh cluster-slave1
ssh cluster-slave1
ssh cluster-slave1複製程式碼

slave2

ssh cluster-master
ssh cluster-slave1
ssh cluster-slave1
ssh cluster-slave1複製程式碼

slave3

ssh cluster-master
ssh cluster-slave1
ssh cluster-slave1
ssh cluster-slave1複製程式碼

四、容器儲存成映象

docker commit -m '提交文字說明' -a '作者' 容器名   提交後的映象名:提交後的映象tag名複製程式碼

五、映象推送到遠端倉庫

新建賬號

hub.docker.com/

建立一個映象倉庫

給需要推送的映象打標籤

docker tag  映象id  要推入的倉庫的使用者名稱/要推入的倉庫名:新定義的tag複製程式碼

推送映象到倉庫

docker push 要推入的倉庫的使用者名稱/要推入的倉庫名:映象標籤複製程式碼