1、docker概述和docker安装1.1、docker概述1.1.1、docker为什么会出现1.1.2、Docker的核心思想1.1.3、对比虚拟机与Docker1.1.4、docker架构1.1.5、Docker 核心对象1.1.6、镜像、容器、仓库1.1.7、Docker运行机制1.2、docker安装
Docker官网:http://www.docker.com
Docker中文网站:https://www.docker-cn.com
Docker Hub(仓库)官网:https://hub.docker.com
docker是一个应用容器引擎项目,基于go语言开发,开源。
目前ros2的课程全部置于docker容器内,客户可以体验学习使用容器化的开发方法。
先提几个场景:
这些问题其实总结起来就是跟环境有关。 要避开各种因环境不同导致的问题,那么最好是在部署项目的时候,连同项目所需要的各种环境一起部署了最好。 比如,项目中涉及到redis、mysql、jdk、es等环境,在部署jar包的时候把整个环境都带上。那么问题来了,怎么样能让项目带上环境一起呢?
Docker就是来解决这个问题的!
这个就是docker的logo,一条装满集装箱的鲸鱼,在鲸鱼背上,集装箱相互之间是隔离的,这也就是docker的核心思想了。 比如之前有多个应用在同一台服务器上运行,可能会有软件的端口占用冲突,现在隔离后就可以独自运行了。另外,docker可以最大化的利用服务器的能力。
docker使用客户端-服务器(client-server)架构。docker客户端(client)与docker守护进程(daemon)通信,后者负责构建、运行和分发docker容器的重担。docker客户端和守护进程可以在同一系统上运行,也可以将docker客户端连接到远程docker守护进程。docker客户端和守护进程通过UNIX套接字或网络接口使用REST API进行通信。另一个docker客户端是docker compose,它让你可以处理由一组容器组成的应用程序。
镜像(image):
docker镜像(Image)就是一个只读的模板。镜像可以用来创建docker容器,一个镜像可以创建很多容器。 就好似Java中的类和对象,类就是镜像,容器就是对象。
容器(container):
xxxxxxxxxx
docker利用容器(container)独立运行的一个或一组应用。容器是用镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的,保证安全的平台。可以把容器看做是一个简易版的 linux 环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。
仓库(repository):
xxxxxxxxxx
仓库(repository)是集中存放镜像文件的场所。仓库分为公开仓库(public)和私有仓库(private)两种形式。
最大的公开仓库是docker hub(https://hub.docker.com/),存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云等。
需要正确的理解仓储/镜像/容器这几个概念 :
docker pull 执行过程:
docker run 执行过程:
1、官网安装参考手册:https://docs.docker.com/engine/install/ubuntu/
2、目前默认出厂镜像已经安装好,没有安装的可以使用下面命令一键安装:
xxxxxxxxxx
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
3、查看docker版本
xxxxxxxxxx
sudo docker version
4、测试命令
xxxxxxxxxx
sudo docker run hello-world
输出如下内容则表示Docker安装成功