树莓派4B安装Centos7环境配置与Docker详细过程
参考:
了解树莓派 安装Centos7 for arm64
镜像列表 Centos7 aarch
我使用的镜像 CentOS-7-aarch64-Minimal-2009.iso
一. 硬件
- 树莓派4B 4核4G, 裸机(包括官方电源,HDMI线)
- 机盒,网线
- TF卡(micro SD) 128GB SanDisk Extreme的存储卡, 读160M/s,写90M/s
二. 装机步骤
- 使用
SDFormatter
格式化TF卡 - 使用
win32DiskImager
把镜像烧入TF卡 - 使用
DiskGenius
扩展根目录的容量,扩容到32G,剩下八十几G空闲直接划分一个新的分区,等登录到系统再挂载到自定义的 /data 目录上 - 插卡插网线上电
- 通过登录到路由器获取該树莓派的有线连接的IP地址, 因为路由器自动分配的
- 通过
SecureCRT
登录該IP, 192.168.xx.xx (端口22, 用户root, 默认密码centos)
三. 设置无线连接
#查看网卡情况
nmcli
#设置wifi
nmtui
与win10连wifi一样方便, 如果想固定树莓派的内网IP, 我是直接通过路由器上绑定的, 同时在路由器得知无线网卡的IP, 也可以通过ifconfig wlan0
, 此时就可以断开网线了, ssh窗口改成无线网卡的IP去登录
四. 安装舒适的环境
#安装vim
[root@localhost ~]# yum install -y vim
#添加PS1环境变量
[root@localhost ~]# vim .bashrc
export PS1='[\[\e[36;1m\]\u@\[\e[32;1m\]PI_192.168.xx.xx\[\e[31;1m\] \t\[\e[36;1m\]\w\[\e[0m\]]\$ '
#关闭密码使用密钥登录
[root@localhost ~]# mkdir .ssh && chmod 700 .ssh
[root@localhost ~]# vim .ssh/uthorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAB......
:set nu #要确保你的密钥是否添加成功,不然关闭密码设置后,会连不上机子了
[root@localhost ~]# vim /etc/ssh/sshd_config
PasswordAuthentication no
#重启服务生效,禁止密码密码,再三确保你的密钥是能连上的
#安装epel源,参照 https://linuxhint.com/epel_centos
[root@localhost ~]# yum install -y epel-release
#缓存新repo
[root@localhost ~]# yum clean all && yum makecache
#安装命令补全功能(需要重连ssh才生效)
[root@localhost ~]# yum install -y bash-completion bash-completion-extras
#安装全局搜索文件工具(相当于window的everyting软件)
[root@localhost ~]# yum install -y mlocate
#更新数据库
[root@localhost ~]# updatedb
#安装htop,glances 好用的查看系统状况命令
[root@localhost ~]# yum install -y htop glances
同步时间
[root@localhost ~]# yum -y install ntpdate
[root@localhost ~]# timedatectl set-timezone Asia/Shanghai
#其实就是/etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai 这个动作
[root@localhost ~]# crontab -e
*/60 * * * * /usr/sbin/ntpdate ntp.sjtu.edu.cn > /dev/null 2>&1
五. 挂载/data
/dev/mmcblk0
就是硬盘了,mmcblk0p1,2,3
都是有用的,是系统安装时自己划分的, 只有4
是当初用DiskGenius
工具划分的全部剩余的,现在要把/dev/mmcblk0p4
挂载到/data
目录上
#找到分区的UUID
[root@localhost ~]# dumpe2fs /dev/mmcblk0p4 | grep "Filesystem UUID"
#挂载
UUID=71121175-4410-3346-a980-1d41d283c2f5 /data ext4 defaults,noatime 0 0
[root@localhost ~]# vim /etc/fstab
#如无报错,则成功,重启后自动挂载
[root@localhost ~]# mount -a
#查看文件系统挂载情况
[root@localhost ~]# df -h
五. 安装Docker
按官方文档来即可
https://docs.docker.com/engine/install/centos/#install-using-the-convenience-script
#创建docker用户
[root@localhost ~]# adduser docker
#让docker用户能使用sudo
[root@localhost ~]# visudo
docker ALL=(ALL) ALL
#docker用户密码
[root@localhost ~]# passwd docker
#切换docker用户环境
[root@localhost ~]# su - docker
#下载官方的安装脚本
[docker@localhost ~]# curl -fsSL https://get.docker.com -o get-docker.sh
#执行官方的安装脚本
[docker@localhost ~]# sudo sh get-docker.sh
#查看docker版本
[docker@localhost ~]# docker version
六. 安装Docker-Compose
安装python3, 不建议python2安装
#安装需要的工具
[root@localhost ~]# yum install -y python3 python3-pip python3-devel make gcc gcc-c++
#升级pip3
[root@localhost ~]# python3 -m pip install -U pip
#通过pip3安装docker-compose, 官方安装的docker-compose方法不适合的
[docker@localhost ~]# sudo pip3 install docker-compose
#查看docker-compose版本
[docker@localhost ~]# docker-compose version
七. 安装LNMP环境
[docker@localhost ~]# docker pull php:7.4.16-fpm-alpine3.13
[docker@localhost ~]# docker pull nginx:1.19.10-alpine
# 树莓派4B是 linux/arm64/v8 , 官方mysql并没有提供树莓派cpu架构的镜像,所以安装不了
[docker@localhost ~]# docker pull biarms/mysql:latest
[docker@localhost ~]# docker run --name mysql --rm -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d biarms/mysql:latest
#进去mysql看看
[docker@localhost ~]# docker exec -it mysql mysql -uroot -p123456
八. 开放端口
#查看zones
[docker@localhost ~]# sudo firewall-cmd --get-active-zones
#添加3306开放端口
[docker@localhost ~]# sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
#重启
[docker@localhost ~]# sudo firewall-cmd --reload
#查询
[docker@localhost ~]# sudo firewall-cmd --query-port=3306/tcp