Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,容器性能开销极低。这对树莓派非常有用,本教程将介绍 Docker 这个工具以及如何在 Raspbian 上安装 Docker。
Docker 的应用场景
Web 应用的自动化打包和发布。
自动化测试和持续集成、发布。
在服务型环境中部署和调整数据库或其他的后台应用。
从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
Docker 的优点
Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。方便快捷已经是 Docker 的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数秒就能完成。Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。
这里介绍两种安装 Docker 的方法,最简单的是直接从 get.docker.com 下载安装脚本并开始安装。仅需执行下面一行命令即可。经测试,树莓派3B、3A+、3B+ 均可支持 Docker,树莓派 Zero 虽然可以安装成功,但无法启动 Docker 服务。
安装方法一(脚本安装)
脚本安装是最推荐的方式,只需要输入下面的命令,等待自动安装好即可。
sudo curl -sSL https://get.docker.com | sh
如果采用这一步安装成功,可直接跳到下文的图形界面安装那里继续阅读。
安装方法二(apt 安装)
由于 Raspbian 基于 Debian,我们还可以使用 apt 来安装 Docker,首先需要更新一下软件包的索引。
sudo apt-get update
安装 HTTPS 所依赖的包
sudo apt-get install apt-transport-https \ ca-certificates \ software-properties-common
添加 Docker 的 GPG key
curl -fsSL https://yum.dockerproject.org/gpg | sudo apt-key add -
验证 key id:
apt-key fingerprint 58118E89F3A912897C070ADBF76221572C52609D
设置稳定的 repository:
sudo add-apt-repository \ "deb https://apt.dockerproject.org/repo/ \ raspbian-$(lsb_release -cs) \ main"
注意:如果 add-apt-repository 命令遇到问题,可以尝试将下面这行添加到树莓派软件源 sources.list,操作如下:
sudo nano /etc/apt/sources.list
添加一行:
deb https://apt.dockerproject.org/repo/ raspbian-RELEASE main
根据自己系统版本调整上面的 RELEASE。通过下面的命令可以查看发行版。
lsb_release -cs
安装 Docker
sudo apt-get update sudo apt-get -y install docker-engine
测试 Docker
运行 hello-world 镜像来做一个测试。
sudo docker run hello-world
如果 Docker 安装成功,你会看到一条消息:“Hello from Docker!”。
常用配置和工具命令
#查看 Docker 版本 docker -v sudo docker pull 仓库/镜像:版本(留空的话默认为 latest) sudo docker run 加参数,用来创建容器 #查看运行容器 sudo docker ps #查看所有下载的镜像 sudo docker images #进入容器终端 sudo docker exec -i -t ha /bin/bash #实时查看10行的 ha 日志 sudo docker logs -f -t --tail 10 ha #重启 systemctl 守护进程 sudo systemctl daemon-reload #设置 Docker 开机启动 sudo systemctl enable docker #开启 Docker 服务 sudo systemctl start docker #下载 Docker 图形化界面 portainer sudo docker pull portainer/portainer #创建 portainer 容器 sudo docker volume create portainer_data #运行 portainer sudo docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
在图形化界面中操作更加便利。运行之后在浏览器中输入树莓派IP:9000 进入界面。
首次访问需要设定登录密码。
对于树莓派上的应用,选择 Local 就好。
在控制台可以看到 Docker 的各种资源信息。
相关链接
Docker 官网:http://www.docker.com
Github Docker 源码:https://github.com/docker/docker
Docker 商店:https://store.docker.com
Docker 文档:https://docs.docker.com
sudo apt-get -y install docker-engine 到这部就失败–是sudo apt-get update没更新好的原因吗
可能是软件源的关系。
试试脚本安装法。
sudo curl -sSL https://get.docker.com | sh
换成docker-ce
我在这里说一下,docker包不存在于最新的buster源中,执行脚本会出现找不到包的情况,而实际上使用docker包可以被安装到此版本中,也就是说直接用stretch版的源就可以找到包安装docker了,另外不能使用脚本安装以为脚本会自动根据当前的系统版本生成对应的docker软件源
脚本安装docker,换个源会快很多
sudo curl https://get.docker.com/ > ./docker_install.sh
sudo sh docker_install.sh –mirror Aliyun
树莓派官方提供的镜像源列表:
http://www.raspbian.org/RaspbianMirrors
这里找个国内的源,再装就不 error 了
树莓派4B 安装了官方系统(Raspbian),docker pull mysql是提示这个错误是怎么回事呢?
no matching manifest for linux/arm/v7 in the manifest list entries
官方mysql没有arm版本
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
E: Essential packages were removed and -y was used without –allow-remove-essential.
这个报错怎么解决
我也遇到了这个问题,请问您解决了吗
怎么通过编码实现容器远程部署功能?网上有没有教程什么的?