一、何为docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
1、Docker如何解决大型项目的依赖关系复杂,不同组件依赖的兼容性问题?
(1)、Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像
(2)、Docker应用运行在容器中,使用的是沙箱机制,相互隔离
2、Docker如何解决开发、测试、生产环境有差异的问题
(1)、Docker镜像中包含完整的运行环境,包括系统函数库,仅依赖系统内的Linux内核,因此可以在任意的Linux操作系统上运行
3、Docker是一个快速交付引用、运行应用的技术
(1)、可以将 程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意的Linux操作系统上
(2)、运行利用沙箱机制形成的隔离容器,各应用之间互不干扰
(3)、启动、移出都可以通过一个命令完成,方便快捷
二、Docker与虚拟机
Docker和虚拟机的差异
(1)、docker是一个系统进程;虚拟机是在操作系统中的操作系统
(2)、docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢,性能一般
三、Docker架构
1、镜像和容器
镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像(镜像都是只读的)。
容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见。一个镜像可以运行多个容器。
2、Docker和DockerHub
(1)、DockerHub是一个Docker镜像的托管平台。这样的平台称为Docker Registry。
(2)、国内也有类似的DockerHub 的公开服务,比如网易云镜像服务、阿里云镜像库等。
3、docker架构
docker是一个CS架构的程序,由两部分组成
(1)、服务器(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等。
(2)、客户端(client):通过命令或RestAPI向Docker服务器端发送指令。可以在本地或远程向服务器端发送指令。
四、Docker的安装
1、CentOS安装Docker
1.1、卸载(可选)
手动卸载旧版本:
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
1.2、安装docker
官方脚本一键安装命令:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
国内daocloud一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
(注意:Docker应用需要用到各种端口,需要逐一去修改防火墙设置。非常麻烦。建议学习的话就直接关闭防火墙)
# 关闭 systemctl stop firewalld # 禁止开机启动防火墙 systemctl disable firewalld
# 开启
systemctl start firewalld
# 启动docker
systemctl start docker
# 查看docker状态
systemctl status docker // 返回有active(running)
docker -v //查看docker版本
2、配置镜像
国内镜像:阿里云的 镜像加速器
标签:容器,依赖,虚拟机,初识,镜像,Docker,docker From: https://www.cnblogs.com/itchenbin/p/17689104.html