docker组件配置
软件名称 | 软件包名 |
---|---|
docker | 最新版 |
ubuntu | Ubuntu18.04 64位 |
CentOS | CentOS 7.4(mini 英文版本) |
1.配置ubuntu
1.1 下载源
来源:yum配置
apt update && apt upgrade -y
apt-get install curl
service fwupd start
wupdmgr refresh
fwupdmgr update
apt-get update
udo apt-get --fix-broken install
sudo apt-get install -f
1.2 安装所需deb软件
dpkg -i "name".deb
2.安装docker
2.1 从网上下载docker的deb包
dpkg -i docker-desktop-4.9.0-amd64.deb
2.2 配置docker源
#删除原有docker---安装所需组件--配置docker安装源--按照配置的安装源更新--安装docker
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/ \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io
3.使用docker
# 拉取镜像--生成系统--查看--进入系统
docker pull centos:centos7
docker run -itd --name serverA --privileged centos:centos7 /usr/sbin/init
docker run -itd --name server1 --network hadoopNet -v /export/software:/export/software -v /sys/fs/cgroup:/sys/fs/cgroup --privileged myhadoop /usr/sbin/init
docker ps
docker exec -it master /bin/bash
3.1 简单配置一下docker的ssh免密,可以不配置
yum -y install net-tools
ifconfig
useradd hadoop
passwd hadoop
vi /etc/hostname
hostname master && bash
yum install -y openssh-server
yum install -y openssh-clients
yum install centos-release-scl scl-utils-build
yum install -y devtoolset-8-toolchain
scl enable devtoolset-8 bash
vi /etc/ssh/sshd_config
Port 22
PubkeyAuthentication yes
systemctl enable sshd
systemctl start sshd
systemctl enable sshd.service
ps -e | grep sshd
netstat -an | grep 22
ssh-keygen -t rsa
cat id_rsa.pub >> authorized_keys #全都分发,每个都一样,包括不同用户
systemctl stop sshd
systemctl start sshd
3.2 根据简单配置的centos配置集群
docker network create -d bridge hadoopNet #创建网络
docker network ls
ifconfig 查看网络网段
docker commit -p 40afbb92a913 myhadoop #做成镜像
docker run -itd --name slave1 \
--network hadoopNet \
-v /export/software:/export/software \
-v /sys/fs/cgroup:/sys/fs/cgroup \
--privileged myhadoop /usr/sbin/init
--ip 静态ip
-p 10000:10000 \
-p 3306:3306 \
-p 6379:5379
'''
-p 表示对外访问的端口
-v 表示绑定的文件夹,不设置/sys/fs/cgourp会导致mysql弄不了
--provileged 表示使用的系统镜像是刚才简单配置的,也可以使用centos:centos7
--network 表示所属网络,在一个网络的计算机可以互相通信,当然无论在哪个网络都可以和ubuntu主机通信,但ubuntu外面的不行,需要 设置-p
--name 表示镜像生成的容器名
--ip 表示静态网络 不然的话docker容器每次重启都会重新分配
'''
docker exec -it slave1 /bin/bash #进入计算机
3.3docker其他简单命令
docker ps
docker stop containerId / containerName
docker rm containerID
docker rename oldname newname
4.其他问题
- docker的/etc文件会在每次**
docker stop
后重置,所以最好把环境变量写入/home/hadoop/.bashrc
或者/root/.bashrc
**下。 - 其他操作和在vmware上一样。
- docker上配置集群比在vmware上更加节省电脑资源