本文 以写一个开机自启动各种命令的脚本文件 为目的学习Shell 脚本
1 Centos 换源
1.1 方式一:使用国内的阿里云镜像 或者 网易
1、 把/etc/yum.repos.d/下面所有的源给删除掉了
2、 下载镜像
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
注意如果没有安装wget,可以从下面的网址中先手动下载,然后上传到linux上安装: http://www.rpmfind.net/linux/rpm2html/search.php?query=wget
3、 执行命令,重新生成cache
yum clean all
yum makecache
yum update
1.2 方式二:使用官网的镜像
1、 把/etc/yum.repos.d/下面所有的源给删除掉了
2、 执行下面的命令,重新生成镜像
rpm -Uvh --force http://mirror.centos.org/centos-7/7/os/x86_64/Packages/centos-release-7-4.1708.el7.centos.x86_64.rpm
3、 查看/etc/yum.repos.d/下面目录,就会发现镜像已经安装完毕:
4、生成缓存
yum clean all
yum makecache
yum update
阿里云ECS之Centos7下载文件出现”wget: unable to resolve host address”:
vi /etc/resolv.conf 添加
nameserver 8.8.8.8
nameserver 8.8.4.4
2 安装Docker
2.1 Docker版本说明
1、 docker.io: is used to be very old version in default ubuntu repo (can skip here)
2、 docker-engine: is used before release 1.13.x
3、 docker-ce: since 17.03
2.2 安装步骤
1、安装 yum-utils, yum-utils
作用是提供了 yum-config-manager工具 :
yum install -y yum-utils
2、使用稳定的docker-ce资源包
docker-ce 社区版
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
3、是否允许使用 edge docker
允许使用edge docker
sudo yum-config-manager --enable docker-ce-edge
禁止使用edge docker(默认),使用stable docker
sudo yum-config-manager --disable docker-ce-edge
4、安装 docker
更新yum包索引,加快检索速度
yum makecache fast
安装Docker CE
yum install docker-ce
5、启动Docker
systemctl start docker
6、拉取ubuntu镜像
docker pull ubuntu:16.04
其中 ubuntu 为镜像名称,16.04为Tag
7、运行ubuntu镜像
docker run -ti ubuntu:16.04
其中 -t新开终端 -i交互式
8、换阿里云源
由于拉取的ubuntu 镜像的采用的源是 ubuntu 自带的,因此换位阿里云的源,便于之后下载各种软件。
Step1. 备份sources.list
cp /etc/apt/sources.list /etc/apt/sources.list.bak
Step2. 更换为阿里云源
echo "# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
" > /etc/apt/sources.list
注意:
echo "aghrag" > a.txt 覆写
echo "aghrag" >> b.txt 末尾追加
Step3. 执行更新
apt-get update
apt-get upgrade
9、启动的Container中安装 vim,open-ssh,ifconfig
apt-get install vim
apt-get install openssh-server
apt install net-tools
10、启动的Container中安装ssh服务
vim /etc/ssh/sshd_config :
PermitRootLogin yes #将PermitRootLogin的值从withoutPassword改为yes
UsePAM no
同时生成ssh 密钥
>ssh-keygen -t rsa
>连续回车
在/root/.ssh目录下生成id_rsa和 id_rsa.pub文件
>cd /root/.ssh
>cat id_rsa.pub >> authorized_keys
至此不会出现 root@localhost:password:输入的提示了。
ssh 相关命令:
service ssh status # 查看ssh服务启动情况
service ssh start # 启动ssh服务
service ssh restart # 重启动ssh服务
11、保存镜像
exit 退出容器后:
docker ps
docker commit 容器id 新命名的容器名:新Tag
PS : 修改镜像名字
docker images
docker tag 镜像id 新镜像名:tag
12、启动容器id,启动ssh
exit 退出容器后:
docker run -ti -p 50001:22 镜像名称:TAG
service ssh start
passwd
PS: -p 将镜像的 22 端口 映射为docker 所在容器的 50001 端口。
13、ssh访问 Or XShell 访问
ssh root@ip -p 50001
2.3 安装大数据生态系统资源
1、 为了再次进入容器时环境变量会失效,解决办法是将环境变量设置在
vim ~/.bashrc
2、 安装各种服务及软件并启动mysql 、Hive、Zeppelin、HDFS、Spark等
service mysql start
3、 commit容器
docker commit 容器id 新命名的容器名:新Tag
4、 export 容器id Or save 镜像id
docker save -o /usr/local/docker/lgv2.tar lg:v2
5、加载
docker load < /usr/local/docker/lgv2.tar
6、实现停用并删除所有容器
docker stop $(docker ps -q) & docker rm $(docker ps -aq)
7、 一般将常用的端口映射出来
docker run -d -P -p 50009:22 -p 50079:50070 -p 8089:8080 -p 18089:18080 lg:v2 /bin/bash -c 'service ssh start && tail -f /dev/null'
注意:希望启动时ssh 服务也启动,最后使用 tail -f /dev/null 可以使容器避免自动退出。