1、什么是docker,docker和其他的k8s等虚拟化技术区别
2、docker的基本概念
3、docker的安装
4、docker的基本操作,查询、添加、编辑和删除docker镜像
5、本地镜像如何放到docker上
6、docker的容器集群编排方法
docker是属于linux容器的一种封装,上目前比较流行的linux容器解决方案。Linux容器是Linux的一种虚拟化技术,它实现了对进程的隔离。
对比解决安装多款相同的应用程序给不同的用户场景:
1、在没有虚拟化技术的时候,只能在一台物理服务器上,先安装一个操作系统,然后在操作系统上运行我们的应用程序。
2、有了虚拟化的技术后,我们可以在同一个物理主机上,使用虚拟化技术虚拟化不同的互相隔离的物理资源(例如CPU、内存、网卡)这些资源,然后搭建不同的虚拟机。在这些隔离的虚拟机上创建需要的应用程序
3、docker技术,docker利用底层的linux技术,对进程进行隔离封装,被隔离出来的进程被称为容器,完全独立于宿主机的进程。
k8s实际上是基于容器的集群管理平台,主要解决docker应用于具体业务的编排、管理和调度的问题。
K8s主要由两个部分组成:mater节点和node节点
Master节点主要是负责管理和控制,node节点是工作负载节点,里面是具体的容器。
下述资料参考资料来源博客:
https://mp.weixin.qq.com/s/r_xNmvmG2Hm17yXNzRJuwg
docker镜像:
Docker本质上是一个运行在Linux操作系统上的应用,而Linux操作系统分为内核和用户空间,无论是CentOS还是Ubuntu,都是在启动内核之后,通过挂载Root文件系统来提供用户空间的,而Docker镜像就是一个Root文件系统。
Docker镜像是一个特殊的文件系统,提供容器运行时所需的程序、库、资源、配置等文件,另外还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。
镜像是一个静态的概念,不包含任何动态数据,其内容在构建之后也不会被改变。
容器:
镜像就是创建出容器的目标,docker镜像和容器的关系和面向对象编程里面类和对象的关系一样。Docker先构建出镜像,利用镜像创建我们需要的容器。
仓库:
在前面的例子中,我们使用两种方式构建镜像,构建完成之后,可以在本地运行镜像,生成容器,但如果在更多的服务器运行镜像呢?很明显,这时候我们需要一个可以让我们集中存储和分发镜像的服务,就像Github可以让我们自己存储和分发代码一样。
Docker Hub就是Docker提供用于存储和分布镜像的官方Docker Registry,也是默认的Registry,其网址为https://hub.docker.com,前面我们使用docker pull命令便从Docker Hub上拉取镜像。
在linux上安装docker:Docker 运行在 CentOS 7 (64-bit)上,要求系统为64位、系统内核版本为 3.10 以上
1.安装依赖包: sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2.添加docker 下载源地址: sudo yum-config-manager --add-repo ?http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.更新yum缓存 sudo yum makecache fast
4.安装docker : sudo yum install docker-ce
5.或者指定版本安装 sudo yum install docker-ce-17.12.1.ce
6、给docker配置镜像加速器:
https://www.cnblogs.com/yoyoketang/p/12913776.html
1.启动docker
# ?sudo systemctl start docker
查看状态
# sudo systemctl status docker
停掉服务
# sudo systemctl stop docker
# ?sudo systemctl enable docker
# docker version 或者是docker info
?sudo yum remove docker ?docker-client ??docker-client-latest ?docker-common ?docker-latest ?docker-latest-logrotate ??docker-logrotate ??docker-selinux ??docker-engine-selinux ?docker-engine
查看本地镜像:docker images
查看docker仓库拥有的镜像:https://hub.docker.com/
docker search 镜像名字 :去docker hub上查询某镜像的名字
下载镜像:
docker pull 镜像名字 参数 :下载镜像,没有参数的话就会下载最新版的镜像
删除镜像:
docker rmi 镜像名字 参数 :删除某个镜像,没有参数,
???????????????????????????默认删除最新版的镜像。
??-f:强制删除,如果镜像在使用中不能非强制删除
??删除多个,镜像之间打空格
??删除全部:docker rmi -f $(docker images -qa)
查看容器:
docker ps或者是查看包括停止状态的所有容器docker ps –a
启动容器:
使用交互的方式启动容器(这种方式exit就会退出容器):docker run -it 镜像名称?/bin/bash
后台运行方式启动容器:docker run -itd --name 自定义容器名称?镜像名称?/bin/bash
启动已经停止的容器:docker start 容器id(容器id可以使用docker ps –a 查看到)
停止容器:
docker stop 容器id
进入容器:
docker exec -it 容器id?/bin/bash(退出直接exit就可以了)
删除容器:
docker rm –f 容器id
清理掉所有处于停止状态的容器:docker container prune
导出容器:
docker?export id > 名称.tar
导入容器:
cat 容器tar包?| docker import – 镜像名称:tag
也可以通过指定 URL 或者某个目录来导入,例如:
docker import http://example.com/exampleimage.tgz example/imagerepo
查看容器端口映射:
通过 docker ps 命令可以查看到容器的端口映射,docker 还提供了另一个快捷方式 docker port,使用 docker port 可以查看指定 (ID 或者名字)容器的某个确定端口映射到宿主机的端口号
docker port 容器id
参考博客:https://www.cnblogs.com/lsgxeva/p/8746644.html
6.1 docker-compose介绍:
Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。
Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包括多个容器实例,Docker-Compose并没有解决负载均衡的问题,因此需要借助其它工具实现服务发现及负载均衡。
Docker-Compose的工程配置文件默认为docker-compose.yml,可通过环境变量COMPOSE_FILE或-f参数自定义配置文件,其定义了多个有依赖关系的服务及每个服务运行的容器。
使用一个Dockerfile模板文件,可以让用户很方便的定义一个单独的应用容器。在工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个Web项目,除了Web服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。
Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。
Docker-Compose项目由Python编写,调用Docker服务提供的API来对容器进行管理。因此,只要所操作的平台支持Docker API,就可以在其上利用Compose来进行编排管理。
6.2 docker-compose操作
安装:pip3?install docker-compose
查看版本:docker-compose?version
常用操作:
后台启动:docker-compose up?–d
查看项目中所有的容器:docker-compose ps
停止启动:docker-compose stop
重新运行:docker-compose start/restart
停止和删除容器、网络、卷、镜像:docker-compose down
查看容器日志输出:docker logs 容器名称
拉起服务依赖的镜像:docker-compose pull
删除所有停止状态的容器:docker-compose rm
在指定服务上执行一个命令:docker-compose run,例如docker-compose run ubuntu ping www.baidu.com
暂停服务容器:docker-compose pause
其他的命令:https://www.cnblogs.com/minseo/p/11548177.html
http://www.manongjc.com/detail/17-zumrciuaavlgvbx.html