【树莓派】搭建Docker容器

出于个人兴趣喜欢套鼓卡片电脑,我这边使用的树莓派安装的是最新的“Buster”版本。这是为了保证所有需要搭建的软件都能够安装成功(原来使用的是Jessie 版,但搭建的时候发现Jessie版内核并不支持所需软件的搭建需要,甚至还因为内核版本的问题折腾了快一周的时间,最后放弃)。

树莓派的安装教程这里就不说了网上有很多解答:
https://www.jianshu.com/p/467335f07e05

推荐一个关于树莓派学习的网站树莓派实验室:
http://shumeipai.nxez.com/

下面讲开始讲在树莓派中搭建docker容器环境。

下载安装docker

在树莓派成功联网后可以通过get-docker.sh脚本来获取最新版本的docker。

搭建本地docker环境

  1. 更换镜像源(因为默认的太慢了,国内的更快),因此先修改国内docker镜像仓库
sudo vim /etc/default/docker
DOCKER_OPTS="--registry-mirror=http://hub-mirror.c.163.com" 

添加一个仓库的镜像,这里我选择网易的其实也可以使用阿里或者其他的。

  1. 更新源
sudo apt-get update

更新apt-get源,防止下载出错

  1. 启动docker并拉取私库镜像
sudo service docker start  //启动docker
sudo docker pull registry  //下载registry镜像
  1. 创建本地仓库映射目录
sudo mkdir -p /mnt/paohe_disk/docker_repo  //创建目录
  1. 建立登录认证
sudo docker run --entrypoint htpasswd registry -Bbn pi paohe123
  1. 重启docker
sudo systemctl restart docker
  1. 启动私有仓库容器
sudo docker run -d -p 5000:5000 --restart=always \
-v /mnt/paohe_disk/docker_repo:/var/lib/registry \ 
--name paohe_registry registry
  1. 登录docker私库
sudo docker ps 
sudo docker login 192.168.100.168:5000

在登录的过程中会提示你需要输入用户名和密码用于登录。

  1. 查找需要用到的docker镜像
sudo docker search

譬如需要查询openjdk的docker镜像可以使用:

sudo docker search arm32v7

【树莓派】搭建Docker容器_第1张图片
同理,也可以到Docker Hub网站中搜索一下自己需要的镜像有没有,如下图:
【树莓派】搭建Docker容器_第2张图片
10. pull目标镜像到本地仓库
当找到需要的版本镜像后可以直接通过pull命令下载到本地仓库,如下图:
在这里插入图片描述
可以使用

sudo docker pull arm32v7/openjdk:8

下载到本地。

  1. push到私有仓库(选做)
    如果做了自定义的镜像需要保存起来的话,可以直接将镜像上传到本地仓库。
    先打tag:
sudo docker tag \
192.168.100.218/library/paohe/java:8 192.168.100.168:5000/java:8

上传本地仓库:

sudo docker push 192.168.100.168:5000/java:8

番外

如果需要在linux中通过命令行的方式查看docker容器的运行情况,可以使用docker-machine工具来查看。

  1. docker-machine安装

由于树莓派属于arm架构,所以在选中docker-machine的时候我们也要选择arm架构的,如下:

curl -L https://github.com/docker/machine/releases/download/v0.16.2/docker-machine-Linux-armhf>/tmp/docker-machine && chmod +x /tmp/docker-machine && sudo cp /tmp/docker-machine /usr/local/bin/docker-machine
  1. docker-machine使用

docker-machine的使用可以直接通过docker-manchine –help查看,这里就不再叙述。因为对于开发人员来说docker-machine工具几乎是不可能接触到的,下一节我们来将一下开发人员如何使用eclipse插件docker-tooling来管理docker容器。

避坑

  1. 镜像版本的选择

要选用arm32v7架构的镜像文件,现在开发环境使用的是两个不同型号的树莓派,一个是pi3 module b+,一个是pi4 module b+。两个同样是module b+的版本但是硬件方面确实千差万别。pi4性能明显强于pi3,而且pi4使用的是arm64v8的架构,而pi3还是arm32v7。这就会让人有所误解,而事实证明pi4虽然是arm64v8的架构,但是docker没有办法使用arm64v8的镜像,但是使用arm32v7的镜像就完全没有问题。

  1. 镜像架构注意

本来开发环境的的部署并不需要三周的时间来部署,因为本来运维人员已经在测试环境部署过一遍并生成了镜像,按照正常的情况只需要登录测试环境的私有仓库并且pull已经弄好的镜像到本地,配置一下数据源或者回调内容就可以使用了。但是测试环境使用的是以amd64架构为基础的镜像无法在armrf架构中运行,所以开发环境中所有的内容都需要适配armrf架构进行重新打包部署,非常耗时。

  1. Jdk版本注意

在Docker Hub中如果搜索arm32v7架构的openjdk镜像会发现除了直接命名的镜像外,还存在一些alpine版本的openjdk镜像,而且alpine的镜像比正常的镜像大少少很多。其实alpine版本指的就是alpine linux,基础镜像只有5M是一个极简版,优势是容量少,启动快,但是有可能被缩减的部分正是你所需的时候你就启动不了了。

你可能感兴趣的:(Docker,Linux,docker)