本篇文章是基于Docker搭建大数据集群系列的开篇之作
主要内容
- docker搭建
- docker部署CentOS
- 容器免密钥通信
- 容器保存成镜像
- docker镜像发布
环境
一、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``` |
| |
| |
| ```bash |
| docker pull centos``` |
| |
| ```bash |
| docker imsages``` |
| |
| ```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
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
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
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``` |
| |
| ```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 要推入的仓库的用户名/要推入的仓库名:镜像标签 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律