树莓派 安装centos7 开发docker + python2.7 +opencv

树莓派 安装centos7 开发docker + python2.7 +opencv

一 系统安装:

1,准备:

  1. 树莓派3b 一个
  2. 电源线一根
  3. SD卡一张
  4. 网线一根
  5. 一台电脑

2,开始:

  1. SD卡接入usb转换槽中并接入电脑。
  2. 格式化SD卡,使用 SD Memory Card Formatter 格式化。
  3. 下载centos7系统镜像(ubantu真是太恶心了,教程和安装各种恶心,各种繁琐,开ssh也麻烦)地址:http://mirror.centos.org/altarch/7/isos/armhfp/Images 下载镜像,推荐下载这个CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1804-sda.raw.xz
  4. 在windows 中使用 W32DiskImager 烧录镜像到SD卡。
  5. SD卡插入树莓派,接入电源,网线连接路由器和树莓派。
  6. 用 win xshell 或这mac iterm 运行命令(需要在同一局域网内 )ssh root@[树莓派地址(进入路由器管理页面就能看到)] 密码:centos
  7. 登陆成功。

3,ssh连接不上

如果连接多次,或烧录多次导致ssh连不上报错:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:r7aqXfdu2Nt0a+2D5Y76YY47fB2habx7G3C9hUriWPo.
Please contact your system administrator.
Add correct host key in /Users/carlos/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/carlos/.ssh/known_hosts:10
ECDSA host key for 192.168.1.230 has changed and you have requested strict checking.
Host key verification failed.

解决方案:

删除本地known_hosts里面的缓存信息即可。命令:ssh-keygen -R [你的远程服务器ip地址]

4,更改系统时区:

timedatectl set-timezone Asia/Shanghai

5,SD 磁盘扩容:

centos7 默认的arm安装镜像是给2M的内存卡服务的,所以你即便是16g的卡也只能看到只有2g的磁盘,这显然不能忍……

查看当前系统磁盘:

df -h 

果然只有2G多

运行命令修改系统分区:

fdisk /dev/mmcblk0  (自带的分区工具)
执行命令:d  (删除分区3)
执行命令:p (按这时候应该是少了一个分区了)
执行命令:n  (加分区)
执行命令:p (主要分区)
直接回车!  (重点)
后面的值默认即可!(重点)
执行命令:p (再查看一次分区)
执行命令:w (写入命令)
然后reboot   (重启树莓派)
执行命令: resize2fs /dev/mmcblk0p3   (更新系统分区)
执行df -h查看


文件系统        容量  已用  可用 已用% 挂载点
/dev/root        14G  1.9G   12G   14% /
devtmpfs        460M     0  460M    0% /dev
tmpfs           464M     0  464M    0% /dev/shm
tmpfs           464M   13M  452M    3% /run
tmpfs           464M     0  464M    0% /sys/fs/cgroup
/dev/mmcblk0p1  667M   43M  625M    7% /boot
tmpfs            93M     0   93M    0% /run/user/0

6 开启wifi :

输入下列命令,安装wifi模块

curl --location https://github.com/RPi-Distro/firmware-nonfree/raw/54bab3d6a6d43239c71d26464e6e10e5067ffea7/brcm80211/brcm/brcmfmac43430-sdio.bin > /usr/lib/firmware/brcm/brcmfmac43430-sdio.bin

curl --location https://github.com/RPi-Distro/firmware-nonfree/raw/54bab3d6a6d43239c71d26464e6e10e5067ffea7/brcm80211/brcm/brcmfmac43430-sdio.txt > /usr/lib/firmware/brcm/brcmfmac43430-sdio.txt

然后重启树莓派

reboot 

在输入下列命令,用来查看WiFi和连接WiFi:


nmcli  d

nmcli  d  wifi  #查看周围的wifi

nmcli d wifi connect yourSSID password 'yourpassword'  #连接wifi  ssid 是wifi名字

nmcli d  show wlan0  #查看wlan0的状态

设置网络配置信息

vi   etc/sysconfig/network-script/ifcfg-????   #????是wifi的名字

BOOTPROTO=static              #静态IP
IPADDR=192.168.31.160       #IP地址
GATEWAY=192.168.31.1    #默认网关
NETMASK=255.255.255.0  #子网掩码

二:docker 和python-opencv镜像安装

1,更新yum

sudo yum update 

2,卸载旧的docker (如果有的话)

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

3,安装docker的依赖包:

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

4,更新yum的docker源:

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

5,安装docker

$ sudo yum install docker 

安装完成后启动docker 守护进程:

service docker start

运行docker -v 检测是否安装成功

6,下载镜像opencv镜像:

自己安装opencv真的是太繁琐了,还需要自己编译忍不了……,不过需要注意的是树莓派是arm的系统,所以普通linux的docker镜像是不支持的,要下载rpi-raspbian系列的镜像才可以正常运行(当我以为我已经要成功了,我还是栽这里了)

搜索rpi-raspbian系列镜像,作为基础镜像,有go,node,python的

sudo docker search rpi-raspbian

这里选择python-opencv的 (正好又一个,运气真是太好了)作为基础镜像

docker pull docker.io/sgtwilko/rpi-raspbian-opencv:latest

测试一下试试:

docker run -it docker.io/sgtwilko/rpi-raspbian-opencv /bin/bash
#启动镜像并进入容器交互界面
python
# 命令进入python交互界面 
import cv2 
#没报错,成功了~

7,构建项目 :

举例 项目:

opencv-app   (项目根目录)
├── src  (资源目录 )
│   └── ├── static  (静态资源)
│       └── templates  (模版)
│       └── main.js  (主程序)
│   ├── Dockerfile  (dockerfile文件)
│   ├── requirements.txt  (安装包表)

dockerfile:

# 基于的基础镜像

FROM docker.io/sgtwilko/rpi-raspbian-opencv:latest

# 维护者信息

MAINTAINER carlos

# 代码添和依赖加到/app文件夹

ADD src /app
ADD ./requirements.txt /app

# 设置工作目录

WORKDIR /app

# 安装支持

RUN pip install -r requirements.txt

# 运行主文件 
CMD ["python", "main.py"]

生成并运行镜像:

运行ftp工具,上传文件opencv-app 夹到树莓派 应用目录,这里使用 /var/local

cd /var/local/opencv-app

sudo docker build -t opencv-app:v1 .
#通过dockerfile生成镜像

sudo docker images
#查看生成的镜像

sudo docker run -idt -p [master:port:container-port] opencv-app:v1 /bin/bash
# 运行镜像,暴露的端口看需求 或者运行 docker run -d -p port:port [image-id]

sudo docker logs [container-id]
#查看日志程序是否运行成功

你可能感兴趣的:(树莓派 安装centos7 开发docker + python2.7 +opencv)