树莓派3b——玩转docker

2018.06.04 初成文
2018.06.07 更新环境变量设置部分

本文是基于OMV(OpenMediaVault)上的,因为图形界面比命令行界面操作更简便,也有更良好的交互性。好吧,其实我是懒而已,用 OMV 好久了不愿更换其他软件。
OMV安装参考 https://www.jianshu.com/p/a4162cf0d2a5

一、安装docker

  1. OMV-Extras里勾选 Docker CE,并点更新

    直接在源里添加
deb https://dl.bintray.com/openmediavault-plugin-developers/arrakis-docker stretch main
deb https://download.docker.com/linux/debian stretch stable
树莓派3b——玩转docker_第1张图片
添加docker源
  1. 插件里找到openmediavault-docker-gui,勾选并安装。

    命令行界面运行:sudo apt-get install openmediavault-docker-gui

    树莓派3b——玩转docker_第2张图片
    安装docker

  2. 安装完成后刷新页面,即可在左侧见“容器”,勾选“启用插件”,保存确认。


    树莓派3b——玩转docker_第3张图片
    启用docker插件

二、设置docker

  1. 设置部分
    默认使用的是系统盘,如果空间不足,可能需要更改到其他位置。


    树莓派3b——玩转docker_第4张图片
    docker设置
  2. docker images repo的源是针对x86-64的,一般是不适用的,因为树莓派处理器是ARM架构的。要么自己build,要么去找适用于arm的镜像image,有一个小技巧是右上角的搜索可以即时搜索image
    https://hub.docker.com/u/arm32v7/
    https://hub.docker.com/u/arm32v6/
    https://hub.docker.com/u/lsioarmhf/
    https://hub.docker.com/u/armhf/
    https://hub.docker.com/u/armv7/

  3. 如果设置没问题,那么就可以开始pull image了
    也可以用个示例简单验证,docker配置是否正确。
    命令行

sudo docker pull arm32v7/hello-world

然后试运行这个docker,出现下图类似信息

sudo docker run arm32v7/hello-world
树莓派3b——玩转docker_第5张图片
docker-hello.png

三、使用docker容器
示例用https://hub.docker.com/r/lsioarmhf/rutorrent/

  1. pull docker
    点击“获取镜像”,在“源”里输入lsioarmhf/rutorrent,标签一栏可以留空,默认是latest,也可选特定tag. 点击“开始”,完成后点“关闭”

    树莓派3b——玩转docker_第6张图片
    获取镜像.png

  2. run docker
    选中需要运行的镜像,然后点“部署镜像”,配置好后点保存。

  • 容器名称:最好写让自己容易辨析的名称,也可以留空,运行后自动生成
  • 与主机时间同步:
  • 重启容器策略:无,总是重启,被停止时重启,启动失败时重启
  • 以特权模式运行:启用后,容器内部的root和宿主机上的root在Capability方面拥有的权限一致,此时容器内的root对宿主机的危害是非常大的。如果没有启动priviledge特权模式,那么容器内的root用户会缺少很多的Capability能力,比如没有SYS_ADMIN能力等
  • 网络模式:
    桥接Bridge,用于端口转发,如我下图示例,容器默认端口是80,而设置转发后地址则为“主机IP:81”
    主机模式Host:直接使用主机的端口
    其它网络模式没用过,不清楚。
  • Host name: 也可留空
  • 环境变量:添加 PUIDPGID ,其它一般不需更改,除非你清楚变量含义及有特定需求。切换到pi用户(新建其它用户也行)下,直接在终端输入id 即可知道当前用户的PUID和PUID,比如我这里直接用pi用户。
获取puid和guid
树莓派3b——玩转docker_第7张图片
更改环境变量
  • 卷绑定:可以先在右侧的Container Path输入/ 看看容器需要哪些参数,再把参数映射到宿主机的目录下,比如将容器内的 /config 映射到宿主机的 /home/pi/.config/docker-rutorrent
    我图例就是将容器的下载目录/downloads绑定为主机的/home/pi/Downloads
    R/O表示只读模式

  • Volumes from: 使用其它容器的目录。

注意,修改添加选项参数,需要点右侧的“+”号才会生效。路径前面的“/”也别忘了。

树莓派3b——玩转docker_第8张图片
部署镜像1--需要点右侧的+号才生效.png

树莓派3b——玩转docker_第9张图片
部署镜像2.png
  1. 选中需要运行的容器,点击start,如下图,稍等1-2分钟,等容器启动完成。

    树莓派3b——玩转docker_第10张图片
    start docker.png

  2. 浏览器输入链接"主机IP:81",运行成功。


    树莓派3b——玩转docker_第11张图片
    successful.png

需要主要的是,容器重启后,容器内的数据将会丢失(容器外部的数据不会丢失),注意备份。

另外,
如果没有安装OMV的话,也可以参考官博 DOCKER COMES TO RASPBERRY PI 使用如下命令安装docker

curl -sSL https://get.docker.com | sh

可能你需要掌握一些有关docker的命令dokcer help

一些docker image推荐:
lsioarmhf/transmission bt/pt下载
lsioarmhf/rutorrent bt/pt下载下载
lsioarmhf/deluge bt/pt下载下载
lsioarmhf/plex 媒体播放、在线转码
lsioarmhf/nextcloud 私有云
arm32v7/nextcloud 私有云,同上
armv7/armhf-owncloud 私有云,公司倒闭了不建议用了
lsioarmhf/htpcmanager htpc管理器
arm32v7/wordpress 博客系统
armhf/wordpress 博客系统,不过这个作者好久没更新了

参考文章:
http://www.songming.me/docker.html
https://www.raspberrypi.org/blog/docker-comes-to-raspberry-pi/
https://forum.openmediavault.org/index.php/Thread/19553-OMV-Docker-plugin-media-server-Plex-PlexPy-Ombi-Libresonic-NZBGet-ruTorrent-Sona/

你可能感兴趣的:(树莓派3b——玩转docker)