-
目录
一,docker的概念
Doker借鉴集装箱运货物的思想,让开发人员将应用程序及其依赖打包到一个轻量级、可移植的容器中,然后发布到任何运行Docker容器引擎的环境中,以容器方式来运行该应用程序。
Docker为应用程序的开发、发布和运行提供一个基于容器的标准化平台。容器运行的是应用程序,Docker平台用来管理容器的整个生命周期。
Docker可以将应用程序与基础设施分离开来,便于实现软件的快速交付。
容器通过运行镜像启动。镜像是一个可执行的软件包,其中包含运行应用程序时所需的一切资源——代码、运行时、库、环境变量和配置文件。
构建镜像通常要创建一个Dockerfile文件来指定创建该镜像并运行它所需的全部步骤。
容器是镜像可运行的实例,运行中的容器是位于内存中且有状态的镜像,本质上是一个用户进程。
镜像是用于创建Docker容器的只读模板,容器是从镜像创建的运行时实例
从应用程序的角度看,镜像是应用程序生命周期的构建和打包阶段,而容器则是启动和运行阶段
二,Docker引擎:
三,Docker生态系统
核心技术:
Runtime(运行时)为容器运行提供底层的运行环境,Docker引擎支持容器管理,docker hub支持镜像的存储和发布
支持技术:
包括docker网络,存储,安全等技术。
平台技术:
Docker Swarm Ku'be'rnetes等容器平台技术提供容
四,部署微服务应用:
每个微服务对应有开发,测试,生产三套环境
Docker实现开发,测试和生产环境的统一化和标准化,大大简化了这些环境部署的步骤
在微服务架构中有些服务负载压力答,需要以集群方式部署,使用虚拟机代价非常大。改用docker容器部署,同样的物理机则能支持上千个容器。
Json格式:
名称空间的概念:名称空间又称命名空间,是对全局系统资源的一种封装隔离技术,
联合文件系统:docker引擎使用联合文件系统的多种变体:AUFS,OverlayFS,Btrfs,BFS和deviceMapper等。联合文件系统是实现docker镜像的技术基础,docker镜像可以通过分层进行继承。
五,Docker版本分类:
社区版:CE
企业版:EE
六,Doker配置文件格式:
YAML格式语法特点:
- YAML大小写敏感
- 使用缩进表示层级关系
- 缩进只能使用空格,不能使用tab键,不要求空格个数,但是相同层级应当左对齐。
- 使用符号 “#”表示注释,YAML中只有行注释。
- 字符串可以不用引号标注。
- 每个 “.”与它后面所跟的参数之间都需要有一个空格。
- YAML文件可以由一个或者多个文档组成,并用 “---”符号分隔。
七,YAML的数据表示
标量
序列
- Baidu
映射
firstName: Bill
lastName: Gates
嵌套
manager:
firstName: Bil
lastName: Gates
八,Docker中YAML格式的应用:
Docker容器编排和Docker堆栈部署用到compose文件。
Compose文件是文本文件,采用YAML格式,可以使用.yml或者.yaml扩展名。
用于容器编排时,compose文件定义整个应用程序。
用于堆栈部署时,compose文件定义应用程序所包含的服务,依赖的密码,卷等资源,以及他们之间的关系。
九,镜像操作命令:
Docker build 从dockerfile构建镜像
Docker history 显示镜像的历史记录
Docker inspect 显示一个或多个镜像的详细信息
Docker load 从tar档案文件或STDIN装载镜像
Docker images 输出镜像列表
如上图所示:
Docker pull 从注册服务器拉取镜像或镜像仓库
Docker push 将镜像或镜像仓库推送到注册服务器
Docker rmi 删除一个或多个镜像
Docker save 将一个或多个镜像保存到tar文档
上图演示过:
Docker tag 为指向源镜像的目标镜像添加一个名称
同上:
Docker hub登录: docker login
登录
Docker export 将容器导出为归档
Docker import 将容器导入的归档包导入为镜像(与export成对使用)
十,进一步理解容器的概念:
容器是只从镜像创建的应用程序运行实例
镜像:静态的定义
容器:镜像运行的实体
十一,容器的基本信息与标识
1,容器id:容器的唯一标识是容器id,采用uuid的形式表示
2,在容器操作过程中,通常采用前12个字符的缩略形式。
十二,容器名称:
- 可以使用容器名称来代替容器id对容器进行操作,在默认的桥接网络中,必须使用容器名称连接网络。
- 容器名称默认是docker自动生成的一个随机名称。
- 可以使用docker reename命令为现有的容器重命名。
可写容器层:
容器和镜像的主要不同之处是容器顶层的可写层
十三,docker状态:
up
docker start
docker run
docker restart
Exited
docker stop
容器运行异常
paused
docker pause
十四,端口映射:-P 随机端口映射(默认32768)
查看容器详细信息:docker ps -a --no-trunc
查看运行脚本如下将运行的脚本复制到执行的命令中:(以/bitnami/nginx为例)
命令格式:docker run -itd -P bitnami/nginx /opt/bitnami/scripts/nginx/entrypoint.sh /opt/bitnami/scripts/nginx/run.sh
就可以进行访问:ip地址:端口号
-p
Docker run -itd -p 80:8080 bitnami/nginx /opt/opt/bitnami/scripts/nginx/entrypoint.sh /opt/bitnami/scripts/nginx/run.sh