树莓派尝试玩儿Docker虚拟机

树莓派 docker 容器
yoyojacky
发布时间: 2019-01-22
阅读: 2967

今天下午尝试了一下树莓派上跑docker,感觉还是不错的,推荐给想要尝试的小伙伴。

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

0x00 Docker的应用场景

  • Web 应用的自动化打包和发布。
  • 自动化测试和持续集成、发布。
  • 在服务型环境中部署和调整数据库或其他的后台应用。
  • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。



硬件需求: 

1. 树莓派3B+

2. 16GB class 10 TF 卡一枚

3. 5v/2.5A 电源一个

4. 键盘鼠标自备

5. 最好有个大彩电支持HDMI的

6. HDMI线缆

-----------------------------------------

软件:

raspbian 最新操作系统,烧录好配置好网络。

-----------------------------------------

0x01 树莓派安装 Docker CE 步骤

强烈警告:切勿在没有配置 Docker APT 源的情况下直接使用 apt 命令安装 Docker. 

会出现莫名其妙的bug,如果你无所谓,那么请自便。。哈哈

Docker CE 不仅支持 x86_64 架构的计算机,同时也支持 ARM 架构的计算机,本小节内容以树莓派为例讲解 ARM 架构安装 Docker CE。
Docker CE 支持以下版本的 Raspbian 操作系统:
Raspbian Stretch
Raspbian Jessie (Docker CE v18.06 及以下版本)
注: Raspbian 是树莓派的开发与维护机构 树莓派基金会 推荐用于树莓派的首选系统,其基于 Debian。

0x02 使用 APT 安装
由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。

$ sudo apt-get update

$ sudo apt-get install \
     apt-transport-https \
     ca-certificates \
     curl \
     gnupg2 \
     lsb-release \
     software-properties-common

鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。
为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。
$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/raspbian/gpg | sudo apt-key add -

# 官方源



$ curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add -



然后,我们需要向 source.list 中添加 Docker CE 软件源:

$ sudo add-apt-repository \
    "deb [arch=armhf] https://mirrors.ustc.edu.cn/docker-ce/linux/raspbian \ $(lsb_release -cs) \ stable"
# 官方源
 $ sudo add-apt-repository \
   "deb [arch=armhf] https://download.docker.com/linux/raspbian \ $(lsb_release -cs) \ stable"

以上命令会添加稳定版本的 Docker CE APT 源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly。

0x03 安装 Docker CE
更新 apt 软件包缓存,并安装 docker-ce。
$ sudo apt-get update

$ sudo apt-get install docker-ce

0x04 使用脚本自动安装
在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Raspbian 系统上可以使用这套脚本安装:
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的 Edge 版本安装在系统中,接下来就可以去启动它了!

0x05 启动 Docker CE
$ sudo systemctl enable docker
$ sudo systemctl start docker

0x06 建立 docker 用户组
默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。


而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。

出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。

因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。

0x07 建立 docker 组:

$ sudo groupadd docker

0x08 将当前用户加入 docker 组:

$ sudo usermod -aG docker $USER

退出当前终端并重新登录,进行如下测试。

0x09 测试 Docker 是否安装正确
$ docker run arm32v7/hello-world


Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
d1725b59e92d: Pull complete
Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/
若能正常输出以上信息,则说明安装成功。

注意: ARM 平台不能使用 x86 镜像,查看 Raspbian 可使用镜像请访问 arm32v7。

arm32v7的链接:https://hub.docker.com/u/arm32v7/


0x10 镜像加速

如果在使用过程中发现拉取 Docker 镜像十分缓慢,可以配置 Docker 国内镜像加速. 

国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。

Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:

Docker 官方提供的中国 registry mirror https://registry.docker-cn.com
阿里云加速器(需登录账号获取)
七牛云加速器 https://reg-mirror.qiniu.com/

我们以 Docker 官方加速器 https://registry.docker-cn.com 为例进行介绍:

Ubuntu 14.04、Debian 7 Wheezy
对于使用 upstart 的系统而言,编辑 /etc/default/docker 文件,在其中的 DOCKER_OPTS 中配置加速器地址:

DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com"
重新启动服务。

$ sudo service docker restart

Ubuntu 16.04+、Debian 8+、CentOS 7
对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)

{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ]
}

注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。

之后重新启动服务。

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

注意:如果您之前查看旧教程,修改了 docker.service 文件内容,请去掉您添加的内容(--registry-mirror=https://registry.docker-cn.com),这里不再赘述了。。。


大家赶紧拿起你们的树莓派去试试? 

好了,大家青山常在,绿水长流,白了个白~



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

点赞 (2)
yoyojacky 擅长:科研教育
评论(0)

登录后可评论,请 登录注册

相关文章推荐
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回

我要举报该内容理由

×
请输入您举报的理由(50字以内)