基於Docker搭建大數據集群(一)Docker環境部署


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

主要內容

  1. docker搭建
  2. docker部署CentOS
  3. 容器免密鑰通信
  4. 容器保存成鏡像
  5. docker鏡像發布

環境

  • Linux 7.6

一、Docker安裝

安裝工具包

yum install -y yum-utils 		#安裝工具包,缺少這些依賴將無法完成```
### 設置遠程倉庫
```bash
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo```
### 安裝
```bash
yum install docker-ce```
### 啟動
```bash
systemctl start docker```
### 查看版本
```bash
docker version```
### 校驗
```bash
docker run hello-world```
## 二、docker部署CentOS
### 拉取鏡像
```bash
docker pull centos```
### 查看是否拉取成功
```bash
docker imsages```
### 設置docker網橋,用於分配固定IP
```bash
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

### 查看運行中的容器
```bash
docker ps```
### 查看所有容器,包括未運行的容器
```bash
docker pa -a```
### 運行容器
```bash
docker run 容器名或容器ID```
### 進入容器
```bash
docker run exec -ti 容器名或容器ID bash```
### 配置hosts文件
```bash
#安裝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```

### 設置用戶密碼
```bash
passwd root```
### 公鑰分發
> 在所有結點都生成密鑰之后再進行這步

**master**
``` bash
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名

五、鏡像推送到遠程倉庫

新建賬號

https://hub.docker.com/

創建一個鏡像倉庫

給需要推送的鏡像打標簽

docker tag  鏡像id  要推入的倉庫的用戶名/要推入的倉庫名:新定義的tag

推送鏡像到倉庫

docker push 要推入的倉庫的用戶名/要推入的倉庫名:鏡像標簽


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM