Docker的深入浅出

定义:

Docker是一个虚拟环境容器,可以将你的开发环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台中。 原理: docker底层使用了LXC来实现,LXC将linux进程沙盒化,使得进程之间相互隔离,并且能够协调各进程的资源分配。 LXC: LXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。

Docker三个重要概念:

镜像(Image):类似于虚拟机中的镜像,是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都需要环境,而镜像就是用来提供这种运行环境的。 容器(Container):类似于一个轻量级的沙盒,可以将其看作一个极简的Linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序。Docker引擎利用容器来运行、隔离各个应用。容器是镜像创建的应用实例,可以创建、启动、停止、删除容器,各个容器之间是是相互隔离的,互不影响。注意:镜像本身是只读的,容器从镜像启动时,Docker在镜像的上层创建一个可写层,镜像本身不变。 仓库(Repository):类似于代码仓库,这里是镜像仓库,是Docker用来集中存放镜像文件的地方。注意与注册服务器(Registry)的区别:注册服务器是存放仓库的地方,一般会有多个仓库;而仓库是存放镜像的地方,一般每个仓库存放一类镜像,每个镜像利用tag进行区分。

容器和虚拟机的区别:

 

容器是应用程序层的抽象,将代码和依赖项打包在一起。多个容器可以在同一台计算机上运行,​​并与其他容器共享OS内核,每个容器在用户空间中作为隔离的进程运行。容器占用的空间少于VM(容器映像的大小通常为几十MB),可以处理更多的应用程序,并且需要的VM和操作系统更少。

虚拟机(VM)是将一台服务器转变为多台服务器的物理硬件的抽象。系统管理程序允许多个VM在单台计算机上运行。每个VM包含操作系统,应用程序,必要的二进制文件和库的完整副本-占用数十GB。VM也可能启动缓慢。

k8s与Docker的关系

 

1、K8S是用来管理容器的,pod是k8s的最小操作单位。pod包含各个功能的容器,pod在node运行,master管理node。

2、Docker就是创建容器的工具,可以看作k8s的组件。

优点:

1.部署方便 2.部署安全 3.隔离性 4.快速回滚 5.资源利用率高 6.管理成本低

缺点:

 

1.隔离性 2.性能(数据交互,网络连接) 3.复杂

Docker中各容器如何通信(推荐使用):

 

docker network来创建一个桥接网络,在docker run的时候将容器指定到新创建的桥接网络中,这样同一桥接网络中的容器就可以通过互相访问。 创建网络: docker network create test-network 启动容器时,加入创建的网络: docker run -it --network test-network --network-alias mysql -e MYSQL_ROOT_PASSWORD=123 mysql:5.7 启动被链接的容器: docker run -it --network test-network --network-alias centos centos /bin/bash

Docker安装

 

要求:lunix内核,要求3.8以上 1.安装工具包:

2.设置远程仓库:

3.安装docker:

4.启动docker:

5.查看版本:

 

6.校验:

 

 (看到这行没关系,稍等一下就好了)

 

posted on 2021-03-29 15:51  家有四只胖加菲  阅读(590)  评论(0编辑  收藏  举报

导航