1、docker概述和docker安装

树莓派PI5主控的ROS1课程全部至于docker容器内。

Docker官网:http://www.docker.com

Docker中文网站:https://www.docker-cn.com

Docker Hub(仓库)官网:https://hub.docker.com

 

操作环境及软硬件参考配置如下:

 

1.1、docker概述

docker是一个应用容器引擎项目,基于go语言开发,开源。

 

1.1.1、docker为什么会出现

先提几个场景:

  1. 运维帮你开发的项目部署到服务器上,告诉你有问题启动不起来。你在本地跑了一下发现没问题...

  2. 要上线的项目因为一些软件的版本的更新,导致不可用了...

  3. 有项目涉及到的环境内容非常多,各种中间件,各种配置,还要部署好多台服务器...

这些问题其实总结起来就是跟环境有关。 要避开各种因环境不同导致的问题,那么最好是在部署项目的时候,连同项目所需要的各种环境一起部署了最好。 比如,项目中涉及到redis、mysql、jdk、es等环境,在部署jar包的时候把整个环境都带上。那么问题来了,怎么样能让项目带上环境一起呢?

Docker就是来解决这个问题的!

 

1.1.2、Docker的核心思想

 

image-20230424111123951

这个就是docker的logo,一条装满集装箱的鲸鱼,在鲸鱼背上,集装箱相互之间是隔离的,这也就是docker的核心思想了。 比如之前有多个应用在同一台服务器上运行,可能会有软件的端口占用冲突,现在隔离后就可以独自运行了。另外,docker可以最大化的利用服务器的能力。

 

1.1.3、对比虚拟机与Docker

 

 

1.1.4、docker架构

docker使用客户端-服务器(client-server)架构。docker客户端(client)与docker守护进程(daemon)通信,后者负责构建、运行和分发docker容器的重担。docker客户端和守护进程可以在同一系统上运行,也可以将docker客户端连接到远程docker守护进程。docker客户端和守护进程通过UNIX套接字或网络接口使用REST API进行通信。另一个docker客户端是docker compose,它让你可以处理由一组容器组成的应用程序。

30f24e4195234f58afbe43525dd57504

 

 

1.1.5、Docker 核心对象

 

1.1.6、镜像、容器、仓库

镜像(image):

容器(container):

仓库(repository):

需要正确的理解仓储/镜像/容器这几个概念 :

 

 

1.1.7、Docker运行机制

docker pull 执行过程:

  1. 客户端将指令发送给docker daemon

  2. docker daemon 先检查本地images中有没有相关的镜像

  3. 如果本地没有相关的镜像,则向镜像服务器请求,将远程镜像下载到本地

docker run 执行过程:

  1. 检查本地是否存在指定的镜像,不存在就从公有仓库下载

  2. 利用镜像创建并启动一个容器

  3. 分配一个文件系(简版linux系统),并在只读的镜像层外面挂载一层可读写层

  4. 从宿主机配置的网桥接口中桥接一个虚拟接口到容器中去

  5. 从地址池配置一个 ip 地址给容器

  6. 执行用户指定的应用程序

 

1.2、docker安装

1、官网安装参考手册:https://docs.docker.com/engine/install/ubuntu/

2、可以使用下面命令一键安装:

3、查看docker版本

image-20230424113920974

4、测试命令

输出如下内容则表示Docker安装成功

image-20230424113848585