基於Docker搭建大資料叢集(一)Docker環境部署
阿新 • • 發佈:2019-12-31
本篇文章是基於Docker搭建大資料集群系列的開篇之作
主要內容
- docker搭建
- docker部署CentOS
- 容器免金鑰通訊
- 容器儲存成映象
- 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名複製程式碼
五、映象推送到遠端倉庫
新建賬號
建立一個映象倉庫
給需要推送的映象打標籤
docker tag 映象id 要推入的倉庫的使用者名稱/要推入的倉庫名:新定義的tag複製程式碼
推送映象到倉庫
docker push 要推入的倉庫的使用者名稱/要推入的倉庫名:映象標籤複製程式碼