• 基于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 要推入的仓库的用户名/要推入的仓库名:镜像标签
    
  • 相关阅读:
    Linux下查看Nginx安装目录、版本号信息及当前运行的配置文件
    UUID.randomUUID()简单介绍
    从jscript脚本混淆说起
    python requests高级耍法
    python sanic中文参考资料
    python grequests和requests比较
    使用aiohttp的一个小例子
    redis加入到Windows系统服务
    aiohttp/asyncio测试代理是否可用
    Charles安装
  • 原文地址:https://www.cnblogs.com/njpkhuan/p/11611966.html
Copyright © 2020-2023  润新知