本文主要来讲两个问题
-
Docker是什么
-
为什么要用Docker
-
Docker是一个容器引擎,那么容器又是什么
Docker官网有个图片小鲸鱼上面拉着集装箱,这集装箱就很形象的描述了什么是容器,就是一个箱子,把程序运行所需要的东西全部放进去
Q1:那容器是怎么产生呢?
Docker中还有一个概念是镜像,镜像就是一个容器的模板,通过镜像来创建多个相同的容器,每个容器可以单独执行,互不影响。
Q2:那镜像是怎么产生呢?
镜像是应用开发人员通过docker命令打包出来的,可以用来分发等
Q3:容器和虚拟机有啥区别?
一台电脑上的多个虚拟机共享全部的硬件资源,但是不共享操作系统,虚拟机启动很慢;但是一台电脑上的多个容器会共享操作系统内核,启动容器就无需启动系统了,速度自然快多了。
2. 那为什么要使用Docker呢?
主要是因为Docker可以隔离应用执行环境,也就是说我可以瞎折腾了,怎么折腾都不会影响我的系统。
还有就是Docker用起来很方便,开箱即用,比如我要做一个AI程序,使用了Tensorflow,这玩意又特别难装,可能依赖的库我现在系统没有,或者库版本和我当前系统冲突,这就很麻烦了。但是用了Docker,可以把Tensorflow依赖的所有库打包入镜像中,我想使用的时候直接拉取镜像,创建容器就好了。
下来就是树莓派安装Docker的步骤:
安装也很简单,无需源码编译,配置一个apt源,然后从源中拉取安装包安装
1. 下载gpg key
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
2. 下载docker的apt源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
3. 更新apt源数据
sudo apt update
4. 安装docker及依赖
sudo apt install docker-ce docker-ce-cli containerd.io -y
5. 当前用户添加到docker组中
sudo gpasswd -a $USER docker
安装完成后执行
docker run hello-world
输出
Hello from Docker!
后表示安装成功