初识docker——用树莓派3B+搭建跨平台云存储
        docker 树莓派 虚拟化容器
        摸鱼之家
        发布时间: 2019-05-05
        阅读: 18848

        最近入手了一台单反相机,于是照片的储存量刷刷的往上涨。这里秀一下随手拍的照片


        1.jpg


        但是照片只存在pc机上,想随时随地用手机、笔记本、访问一下就非常麻?#24120;?#36824;需要接线去传输,用微软的OneDrive又经常连不上,而且同步速度非常慢。不久之前,参加社区活动到了一块树莓派3B+

        于是着手开始用这块树莓派搭建一个能全平台访问的存储应用。查了一定的资料,确定Nextcloud作为当前的解决方案。Nextcloud不仅能够通过浏览器访问,同时在安卓Googleplayios平台,Desktop平台?#21152;?#23458;户端,可以随时随地方便的实现文件照片的全平台同步。

        闲话到此,接下来开始?#24471;?#20855;体的部署步骤。首先引入我们此?#38382;?#29992;的一个重要工具Docker:


        Docker技术简介:

                Docker是一种虚拟化容器技术,在这个容器中运行着和真机分离的你要部署的服务的全部运行环?#24120;?#20854;核心是docker imagedocker containerDocker image和虚拟机的vmdk有些类似,其中存放的是docker container运行需要的各种数据,比如继承了apachephppython等等软件。而Docker container就是正在运行的一个容器,来提供各种各样的服务。它的?#25293;?#26377;些类似Java虚拟机,Java程序就是用过java虚拟机来执行的。可以理解Docker container就是一台虚拟机。Docker 容器就是一个典型的黑盒子,将部署特定服务的各种细节封装起来,你只需要安装docker软件,即可运行相应的docker image,就像上述的nextcloud在树莓派的部署过程一样。


        为什么使用docker

        那么问题来了,我们为什么需要使用docker呢?作为一个初学者,我认为docker有以?#24405;?#28857;无可比拟的优势。

        一、 简单:

        docker最大的特点就是简单!!!,同样的以下面部署nextcloud的服务的过程?#27492;擔?#20551;如我们不使用docker,那么我们部署的步骤应该为:

        1.安装php以?#26696;?#31181;各样的拓展库

        2.安装apache/nginxweb服务器

        3.Nextcloud的官方网站上获取相应的文件,不排除传输过程中出现问题

        4.安装mysql/mysqlite/oracle等等数据库软件

        5.完成数据库的相关配置与权限分配

        6.nextcloud部署在网站的web目录

        7.完成大量的繁复的web服务器相关设置

        但是当我们使用了docker之后我们的核心操作其实就两?#20889;?#30721;:
         

        sudo docker pull nextcloud
        (从官方仓库下载docker image )
        sudo docker run  -d -p 23333:80 nextcloud

        (指定一些container的运行?#38382;?/span>
        -d
        指在后台运行,-p指定了docker container使用真机的23333端口,而80指的是container的内部的端口。还是将docker容器理解成一台真实的机器,我们这里相当于设置了一个简单的端口?#25104;洌?#23558;真机的23333端口?#25104;?#21040;虚拟机的80端口,即为docker容器内部web服务器的端口。
        这样,仅仅两?#20889;?#30721;就运行起来了一个之前需要复?#20248;?#32622;的服务


        二、 安全

        对于生产环境?#27492;擔?#20351;用虚拟化技术有一个天然的优点,就是将服务和真机分离开来,对于docker容器?#27492;擔?#23427;只在你的服务器上的一个位置存储它的数据,一切和客户的数据交换只发生在虚拟化容器之间,保证了真机的安全。

        三、灵活

        使用docker需要的只有一个docker image或者你自己也可以根据官方文档去创建自己的docker image。服务不想要了?#21487;?#20102;就好。想开多个服务?轻松实现,一个docker image可以用于同时创建多个docker container,这就非常类似于多道程序设?#35780;?#38754;进程的?#25293;睿?#20182;们使用同一?#26410;?#30721;,但都具有自己独立的运行状态。

               以上,是我在docker学习过程中的一些理解,您可能注意到,我使用了大量的类比的方法去理解它的?#25293;睿?#24076;望这篇文章能让您初步理解这种在运维中越来越热的技术——docker.

         材料:

        1.树莓派3B+

        2.5V/2.5A的电源供电

        3.32GB Class 10 TF卡(根据个人需要可选择容量更大的Class10TF卡 )

        4.将官方的Raspbian Stretch with desktop and recommended software最新版本烧写入内存卡


        安装Docker

        Docker是一个虚拟化的容器应用,官方网站为(https://www.docker.com/)通过docker可以方便的部署各样的应用,免去一些配置的麻烦.以下步骤可参阅docker官方文档(https://docs.docker.com/install/

        首先通过ssh链接树莓派

        2.png


        运行以下命令:


        sudo apt-get update
        安装必须的软件环境
        sudo apt-get install \ 
        apt-transport-https \ 
        ca-certificates \ 
        curl \ 
        gnupg2 \ 
        software-properties-common
        
        添加docker官方的apt-key


        curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add -
        添加dockerapt仓库


        echo "deb [arch=armhf] https://download.docker.com/linux/raspbian \
        $(lsb_release -cs) stable" | \
        sudo tee /etc/apt/sources.list.d/docker.list
        
        安装docker-ce


        sudo apt-get install docker-ce
        安装完成docker之后,pull nextcloud 的官方镜像:


        sudo docker pull nexcloud
         3.png 
        运?#33455;?#20687;:

        sudo docker run -d -p 23333:80 nextcloud

        4.png

        这一步也可以通过?#38382;?#25163;动指定数据存放的位置

        查看容器的运行状态:
        sudo docker container ls 

        5.png


        已经出现了正在运行中的docker container

        到此nextcloud已经成功地部署在你的树莓派上啦,访问你的树莓派的23333端口(这个端口自己可以随意修改),就能看到Nextcloud的相关页面了.填入自己的用户名密码,使用默认的数据库就可以直接开始使用了


        6.png


        同时,nextcloud最强大的地方在于多终端同步,ios商店、googleplay(需要科学上网,或者后续?#19968;?#19978;传apk文件),windows平台,linux平台?#21152;?#30456;应的客户端。

        效果大概是这样的:

        WEB浏览器:


        6.png


        安卓App(获取渠道为GooglePlay商店搜索Nextcloud):





        8.png


         




        Ios应用(获取渠道:?#36824;?/span>APPSTORE搜索Nextcloud


        9.png



        总结:

        可能遇到的问题与方案不足:

        1.在使用docker的过程中,遇见的最大的问题可能是网络问题,当遇到网络问题不能从官方仓库拉取镜像时可以更?#36824;?#20869;源,具体方法为:

        编辑/etc/docker/daemon.json:

         sudo vim /etc/docker/daemon.json

        输入以下内容并保存:
        {
        
        "registry-mirrors": ["http://hub-mirror.c.163.com"]
        
        }

        重启docker:
        sudo service docker restart


        2.      因为docker的虚拟化,所以可能会带来额外的开销,这里也不推荐用docker在树莓派上跑特别大型的应用,因为树莓派的?#38405;?#36824;是比?#20808;?#30340;。

        3.      Nextcloud作为一个云盘的替代品非常优秀,ubuntu18.04及以后的版本?#25216;?#20837;了对nextcloud的支持,你可以轻松的在任何操作系统上使用它,但是它依旧不是传统的Nas,没有办法实现像群晖一类Nas多种多样的丰?#36824;?#33021;。

        4.      本次的方案还缺少对关键数据的备份机制,毕竟树莓派使用的是民用级别的TF卡,其数据的安全性相比普通Nas稍有欠?#20445;?#21516;时因为是TF卡,写入?#38405;?#19978;有些慢了,但是作为存放小文件照片之类的绝对够了。这点后续可以通过?#20197;?/span>2.5寸的笔记本硬盘或者固态硬盘解决。

         

        以上是本次方案的一些不足和tips,本次通过一个小?#36947;?#24341;入了Docker虚拟化容器的技术,展示了其在运维过程中的极其优秀的地方,希望对您的学习之路?#20852;?#24110;助。


        原创作品,未经权利人授权禁止转载。详情见转载须知 举报文章

        展开查看更多
        点赞 (6)
        打赏
        当前打赏1人    
        摸鱼之家
        相关文章推荐
        X
        你的打赏是对原创作者最大的认可
        请选择打赏IC?#19994;?#25968;量,一经提交无法退回 !
        100IC币
        500IC币
        1000IC币
        自定义
        IC币
        确定
        X
        提交成功 ! 谢谢您的支持
        返回

        我要举报该内容理由

        ×
        请输入您举报的理由(50字以内)
        广西11选5走势图开奖结果

                    体彩走势图带连线 切沃主帅 魔兽争霸3下载 七星彩特区网 板球明星投注 格里尔格拉默 apex英雄打不开 那不勒斯的萤火虫 布莱顿vs加迪夫城比分 K歌乐韵电子游戏 广西快乐10分开奖查询 七星彩开奖时间 圣女贞德bt 辽宁福彩36选7走势图 瓦伦西亚艺术科学城 刀塔自走棋糖果商店