Docker是一个容器化平台,可让您快速构建,测试和部署应用程序,作为可在任何平台运行的可移植自足容器。
在本教程中,我们将说明如何在Raspberry Pi上安装Docker并探索基本的Docker概念和命令。包括使用curl下载docker安装脚本,配置docker不使用sudo或者root执行Docker命令,什么是Docker镜像,容器概念的说明,以及如何在docker容器执行shell/bash/zsh命令。
先决条件
我们假设您在Raspberry Pi 上安装了Raspbian。 Docker不需要GUI图形界面,最好使用Raspbian Stretch Lite镜像并启用SSH 。这样,您的Raspberry Pi将具有更多可用的处理能力和内存来运行Docker容器。
在Raspberry Pi上安装Docker
在Raspberry Pi上安装Docker只需运行简单运行命令即可。首先,使用以下curl命令下载Docker安装脚本:
curl -fsSL https://get.docker.com -o get-docker.sh
下载完成后,键入以下命令以执行安装Docker脚本:
sh get-docker.sh
该脚本将检测Linux发行版,安装所需的软件包,并启动Docker。此过程可能需要几分钟,完成后,脚本将输出Docker版本以及如何以非root用户身份使用Docker的信息。至此,Docker已安装在您的Raspberry Pi/树莓派板上。
不使用Sudo执行Docker命令
默认情况下,只有具有管理权限的用户才能执行Docker命令。要以非root用户或者不使用sudo
运行Docker命令,您需要将用户添加到在安装过程中创建的Docker组中。运行以下命令将当前用户加入到Docker组中:
sudo usermod -aG docker $USER
$USER
是保存用户名的环境变量。注销并重新登录,以便刷新组成员身份。要验证您是否可以在不使用sudo
的情况下运行docker命令,请运行以下命令,该命令将下载测试镜像,并且创建容器运行它,容器将打印Hello from Docker
消息并退出:
docker container run hello-world
输出看起来像这样:
Hello from Docker
如何使用Docker
现在,在您的Raspberry Pi上设置了Docker,下面我们来看一下基本的Docker概念和命令。
Docker镜像
Docker镜像由一系列文件系统层组成,这些文件系统层表示Dockerfile中的指令,这些指令构成了可执行的软件应用程序。镜像是一个不可变的二进制文件,包括应用程序和所有其他依赖项,例如库,二进制文件和运行该应用程序所需的指令。
大多数Docker镜像都可在Docker Hub上找到。它是一个基于云的注册表服务,除其他功能外,还用于将Docker镜像保存在公共或私有存储库中。要从Docker Hub注册表中搜索镜像,请使用docker search
命令。例如,要搜索Debian镜像,请输入:
docker search debian
Docker容器
镜像的实例称为容器。容器代表单个应用程序,进程或服务的运行时。这可能不是最合适的比较,但是如果您是程序员,则可以将Docker镜像视为类,而将Docker容器视为类的实例。
要启动,停止,移除和管理容器,请使用docker container
命令。例如,以下命令将使用Debian镜像启动Docker容器。如果您没有本地Debian镜像,Docker则将首先下载Debian镜像:
docker container run debian
Debian容器在启动后将立即停止,因为它没有长时间运行的进程,并且未提供其他任何命令。容器启动后,运行空命令,然后退出。选项-it
允许您通过命令行与容器进行交互。要启动交互式容器,请输入:
docker container run -it debian /bin/bash
root@ee86c8c81b3b:/#
正如您从上方的输出中看到的那样,一旦容器启动,命令提示符就会更改,这意味着您现在正在容器内部。要列出活动的Docker容器,请使用以下命令:
docker container ls
如果您没有正在运行的容器,则输出将为空。要查看活动容器和非活动容器,请将其传递给-a
选项:
docker container ls -a
要删除一个或多个容器,只需复制一个或多个容器ID,然后使用容器id作为docker container rm
命令的参数:
docker container rm c55680af670c
结论
您已经了解了如何在Raspberry Pi计算机上安装Docker以及如何运行Docker容器。有关此主题的更多信息,请查看官方Docker文档。如有任何疑问,请在下面发表评论。