Docker基础培训
《Docker实战培训》PPT课件ppt
构建一个Redis容器集群
使用Docker Compose定义Redis容器集群 配置Redis主从复制 配置Redis Sentinel实现自动故障转移 使用Redis Cluster实现水平扩展和高可用性
构建一个Nginx容器负载均衡集群
使用Docker Compose构建多个Nginx容器 使用Docker Swarm将多个Docker节点组成集群 使用负载均衡器将请求分发到多个Nginx容器 监控和日志记录的实现
镜像上传与下载
本 地 镜 像 上 传 至 Docker Hub
Docker 镜 像 管 理 概 述
从 Docker Hub下 载 镜 像 镜像的版本控制与标签管理
镜像标签管理
镜像标签:用于标识镜像版本的标 签
删除本地镜像标签
添加标题
添加标题
推 送 镜 像 到Docker Hub
添加标题
添加标题
删除远程镜像标签
读模板
Docker 镜 像 构 建:通过
Docker f i le定 义镜像构建过
程
Docker 镜 像 分 层:基于联合
文件系统 ( UnionFS) , 实现镜像的分 层和增量更新
Docker 镜 像 传 输:支持将镜 像从本地或者 远程传输到目
标主机上
Docker仓库技术
D ocker 镜 像 : D ocker 的 一 种 封 装 方式,包含了运行 环境和程序
Docker实战培训
WPS,a click to unlimited possibilities
汇报人:WPS
目录
Docker概述 Docker容器管理
Docker核心技术 Docker镜像管理
《Docker培训》课件
仓库概述
介绍仓库的种类和特点。
部署仓库
演示如何部署私有Docker仓库。
仓库命令
教授仓库管理的常用命令,如推送、拉取和删 除镜像。
容器与仓库交互
讲解容器和仓库之间的数据交互方式。
Docker网络
Docker网络用于连接和隔离容器,以及实现容器与外部网络的通信。学习Docker网络配置和管理是跨容器通 信和服务暴露的基础。
网络概述
介绍Docker网络的基本原理和类型。
容器网络连接
讲解容器之间互联的方法和技巧。
容器端口映射
演示如何将容器的端口映射到宿主机上。
Docker网络命令
教授Docker网络管理的常用命令,如创建、删除和查看网络。
Docker数据卷
Docker数据卷用于在容器之间共享和持久化数据。理解数据卷的创建和绑定方式有助于数据的灵活管理和备 份。
C om p ose概述
介绍Docker Compose的作用和特点。
C om p ose安装
演示如何安装和配置Docker Compose。
编写C om p ose文件
讲解Compose文件的语法和编写方法。
C om p ose命令示例
示范使用Compose命令进行多容器应用的管理。
Docker安全
介绍Docker的起源、发展和核心概念。
Docker架构
解释Docker的组件和交互方式。
Docker术语解释
定义Docker中常见的术语和概念。
Docker镜像
Docker镜像是用于创建Docker容器的模板。了解镜像的概念、安装、查询和编写Dockerfile是使用Docker的基 础。
镜像概述
Docker技术入门教程
Docker技术入门教程Docker是一种开源的容器化平台,能够实现应用的快速构建、发布和运行。
它在软件开发、测试和部署方面具有重要的作用。
本文将介绍Docker的基本概念,以及如何使用Docker构建和管理容器化应用。
一、Docker的基本概念1. Docker镜像:Docker镜像是一种轻量级、可移植的打包格式,包含了应用和运行该应用所需的依赖。
镜像是Docker容器的基础,可以通过Docker镜像创建出多个容器。
2. Docker容器:Docker容器是Docker镜像的一个运行实例。
容器可以被启动、停止、删除和暂停等操作。
一个容器可以共享同一个镜像,但是它们之间是相互隔离的。
3. Docker仓库:Docker仓库用于存储Docker镜像,可以公开访问或者私有化部署。
Docker Hub是一个知名的公共Docker仓库,用户可以在其中获取和分享Docker镜像。
二、Docker的安装和配置1. 安装Docker:根据操作系统的不同,可以选择适合的安装方式。
对于Linux系统,可以通过包管理工具安装Docker;对于Windows和Mac系统,可以下载Docker Desktop进行安装。
2. 配置Docker:安装完成后,需要进行一些基本的配置工作。
比如,设置Docker镜像加速器,以提高镜像下载速度;设置容器的资源限制,以保证应用的稳定运行。
三、Docker的基本使用1. 拉取和运行Docker镜像:可以通过Docker命令行界面或者Docker仓库中的命令,拉取所需的Docker镜像。
例如,使用命令`docker pull nginx`可以拉取最新版本的Nginx镜像。
然后,使用命令`docker run -d -p 80:80 nginx`运行该镜像,并将容器的80端口映射到宿主机的80端口。
2. 构建自定义Docker镜像:除了使用现有的Docker镜像,也可以根据需要构建自定义的Docker镜像。
《Docker实战培训》课件
配置Docker:设置Docker的镜像仓库、网络、存储等配置项
启动Docker:启动Docker服务,确保Docker正常运行
管理Docker:使用Docker命令管理容器、镜像等资源,如创建、启动、停止、删除等
Docker的启动与停止
重启Docker:使用命令"docker restart webserver"重启Docker容器
数据卷的性能优化:在数据卷的使用过程中,需要注意数据的读写性能,可以通过优化文件系统、优化磁盘IO等方式进行优化。
Docker实战案例
使用Docker部署Web应用
运行容器并访问Web应用
配置容器网络
创建Docker容器
准备Docker镜像
使用Docker进行数据库容器化
什么是数据库容器化:将数据库部署在Docker容器中,实现数据库的快速部署和迁移
容器可以在任何支持Docker的平台上运行
Docker可以提高开发、测试和部署的效率,降低运维成本
Docker的特点
轻量级:Docker容器非常轻量级,可以快速启动和停止
易管理:Docker提供了一套完整的管理工具,可以方便地管理和部署容器
可移植性:Docker容器可以在不同的操作系统和硬件平台上运行
隔离性:Docker容器之间相互隔离,互不影响
Docker的应用场景
容器化微服务
自动化部署
持续集成/持续部署(CI/CD)
开发与测试环境
Docker安装与配置
Docker的安装步骤
安装Docker引擎
配置Docker守护进程
安装Docker CLI工具
验证安装与配置
Docker的基本配置
安装Docker:下载并安装Docker,根据操作系统选择合适的版本
Docker基础培训
秘密▲
了解Docker
Why not VMs?用户需要的是高效运行环境而非OS, GuestOS既浪费资源又 难于管理,轻量级的Container更加灵活和快速。
VS
秘密▲
了解Docker
Namespaces:LXC所实现的隔离性 主要是来自kernel的namespace, 其 中pid, net, ipc, mnt, uts 等 namespace将container的进程, 网络, 消息, 文件系统和hostname 隔离开
如果要获取最新的docker版本,你需要location到docker repository,按如下方式执行 curl脚本即可:
Docker当前最新版本为1.1.2
秘密▲
Dockerizing Applications: A "Hello world"
Hello world
docker run : The combination runs containers. ubuntu:14.04 : This is the source of the container we ran. Docker calls this an image. In this case we used an Ubuntu 14.04 operating system image.【也可以直接写ubuntu,这样获取的 是ubuntu:latest image】 /bin/echo ‘Hello world‘ :told Docker what command to run inside our new container When our container was launched Docker created a new Ubuntu 14.04 environment and then executed the/bin/echo command inside it. We saw the result on the command:Hello world
docker知识点整理
Docker 基础培训-什么是Docker1 介绍Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。
它基于 Google 公司推出的Go 语言实现。
项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。
Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。
Docker 的基础是 Linux 容器(LXC)等技术。
在 LXC的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。
用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。
2 Docker与传统虚拟化方式的不同2.1 系统结构图对比容器在操作层面进行虚拟化,直接复用了本地操作系统,而虚拟机必须在虚拟硬件层面再建立一层虚拟操作系统。
2.2 优缺点对比优点更少的抽象层相同PID。
net namespace(容器网络隔离)网络隔离是通过 netnamespace 实现的,每个net namespace有独立的 network devices, IP addresses, IP routing tables,/proc/net 目录。
ipc namespace(系统和容器的进程交互方法隔离)container中进程交互还是采用linux常见的进程间交互方法(interprocess communication - IPC), 包括常见的信号量、消息队列和共享内存。
容器的进程间交互实际上还是 host 上具有相同 pid namespace 中的进程间交互,IPC 资源申请时加入 namespace 信息为每个 IPC 资源有一个唯一的 32bit ID。
mnt namespace(容器根目录隔离)mnt namespace允许不同namespace的进程看到的文件结构不同,这样每个 namespace 中的进程所看到的文件目录就被隔离开了。
Docker技术培训
Docker 技术培训讲师:时大伟QQ :645223987…目录•Docker介绍•Docker与VM对比•Docker文件系统结果•镜像•容器•仓库•容器数据卷•网络•创建第一个Docker容器Docker介绍Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 机器上。
Docker是一个重新定义了程序开发测试、交付和部署过程的开放平台,Docker则可以称为构建一次,到处运行,这就是docker提出的“Build once,Run anywhere”。
Go 语言实作,加入了Linux 基金会,遵从Apache 2.0 协议,原始码在GitHub上进行维护。
在LXC 的基础上Docker进行了进一步的封装,让使用者不需要去关心容器的管理,使得操作更为简便。
使用者操作Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。
Docker与VM对比Docker文件系统结构Docker镜像Docker镜像(Image)是基于联合文件系统的层式结构。
可从DockerHub下载数以千记的、由各应用官方发布的应用镜像,比如Redis、Mysql、nginx等。
镜像特性:1、是一个只读模板。
2、增量文件系统。
方便管理,使镜像创建、升级十分方便。
3、用户基于镜像运行自己的容器。
Docker容器Docker容器(container)是运行应用的载体。
容器特定:1、只能从镜像创建容器。
2、快速创建,启动、停止、重启、删除。
3、超级简易的Linux系统环境4、可以安装应用系统Docker仓库Docker仓库是存储docker镜像的地方。
公开仓库——Docker Hub、Docker Pool私有仓库——Docker registry、Docker Trusted RegistryDocker网络Docker网络分为两种:NAT模式:Docker默认的网络设置。
docker课程介绍.doc
云计算Docker容器技术应用培训课程大纲1、培训对象:云计算架构师、运营维护工程师、开发工程师2、培训目标:了解Linux下的Docker技术的基本情况;基于Docker容器的快速部署、维护、开发。
Docker具体运用场景的案例介绍Docker如何进行运维、监控、优化,以及常见故障的处理。
3、课程要点:让学员熟悉虚拟化技术的基本原理,全虚拟化,半虚拟化技术的应用模式和案例,并且掌握基于Docker容器技术的虚拟化解决方案与传统在硬件层面实现的虚拟化技术进行异同比较,并且阐述各自适合的应用场景,以及剖析Docker在京东、Google、Amazon等大型企业中的实际应用案例。
本课程让学员掌握Docker平台的基本原理、安装、部署、配置、运维,以及应用开发实战技能。
课程紧密结合行业市场需求和国际国内最新技术发展潮流,让学员掌握Docker云计算虚拟化平台的架构和应用部署,分享成功的应用项目实施经验,学习Docker应用项目解决方案咨询服务。
本课程采用技术原理与项目实战相结合的方式进行教学,在讲授原理的过程中,穿插实际的系统操作,本课程讲师也精心准备的实际的应用案例供学员动手训练。
4、每期时长(天):3天5、课程培训方案:第一天时间内容方法目的上午1、云计算虚拟化技术剖析,以及在大型企业中的应用案例2、服务器虚拟化技术3、桌面虚拟化技术4、应用虚拟化技术5、重点分析VMware、XenServer、OpenStack云计算与虚拟化平台理论+案例分析+操作1、云计算虚拟化技术的剖析1、Docker容器技术的产生背景与发展历程2、LXC技术精髓剖析3、Docker平台与的优缺点4、Docker平台的交付与部署5、基于Linux CentOS集群实现实验集群环境和开发环境的搭建6、搭建Docker集群理论+案例分析+操作2、Docker的发展历程,以及Docker所使用的Linux容器技术的基本原理及其应用案例。
容器技术培训
Docker
Docker的优势和劣势
Docker的优势 持续部署和测试:发到产品发布的整个过程中使用相同的容器来确保没有任何差异或者人工干预。 Docker可以保证测试环境、开发环境、生产环境的一致性。 可移植性:容器可以移动到任意一台Docker主机上,而不需要过多关注底层系统。 弹性伸缩更快速:配合容器编排工具可以很容易的无状态应用的弹性伸缩,只需要改一个yml的数字即 可。利用docker能在几秒钟之内启动大量的容器,这是虚拟机无法办到的,快速启动,秒级和分钟级的 对比。 资源利用率高:由于docker不需要Hypervisor实现硬件资源虚拟化,docker容器和内核交互,几乎没 有性能损耗,性能优于通过Hypervisor层与内核层的虚拟化。 对硬件无额外要求:不需要CPU支持虚拟化。 支持GPGPU:NVIDIA Container Runtime和nvidia-docker插件,实现多个容器共享一个GPU
Docker简介
Dock是基于GO语言实现的开源容器项目,诞生于2013年年初。当前主流的Linux操作系统都支持Docker。基于 Linux平台上的多项开源技术,Docker提供了高效、敏捷、和轻量化的容器方案,并支持部署到本地和多种云平台 环境。Docker的下载量,已经从2015年初的1亿,经过2015年11月突破10亿,2016年6月突破40亿,到如今2017 年4月突破了120亿。可以说Docker为应用的开发、运行和部署提供了“一站式”的实用解决方案。
Docker与虚拟化
完全虚拟化技术(IBM P、Vmware,VirtualBOX) 硬件辅助虚拟化技术(Intel—VT、AMD—V) 部分虚拟化技术 准虚拟化技术 操作系统级虚拟化技术
Docker操作系统层次虚拟化
Docker实战培训课件
秘密▲
基于docker的TDRNC CI架构
Jenkins Server Dockerfile
# This is jenkins on Ubuntu14.04FROM ubuntu:14.04 MAINTAINER zhangzhenxing
ENV DEBIAN_FRONTEND noninteractive
➢项目部署 7、从Registry container里pull镜像
秘密▲
11 Docker实战培训
Virtual Desktop
➢项目介绍
该项目实现的是一个基于浏览器的通过VNC服务进行访问的ubuntu桌面系统。
秘密▲
12 Docker实战培训
秘密▲
Virtual Desktop
➢项目链接
13 Docker实战培训
6 Docker实战培训
秘密▲
Docker Registry
➢项目部署 3、本地配置文件 /opt/docker-image/registry-config/config.yml ,根据官网提供 的config_sample.yml进行修改。( ) 主要修改的就是本地存储的目录。
7 Docker实战培训
Docker实战培训
秘密▲ 23
基于docker的TDRNC CI架构
master
inc_update_Trig result_proc
Docker实战培训
ccmp compile
ccmp_inc_update ccmp_daily_update
ccmp_compile
dcmp compile
dcmp_inc_update dcmp_daily_update
container到host的端口映射秘密docker实战培训dockerregistry项目部署5registrycontainer里保存的images秘密docker实战培训10dockerregistry项目部署6从registrycontainer里push镜像秘密docker实战培训11dockerregistry项目部署7从registrycontainer里pull镜像秘密docker实战培训12virtualdesktop项目介绍该项目实现的是一个基于浏览器的通过vnc服务进行访问的ubuntu桌面系统
Docker培训
Docker培训Docker培训_Docker操作一:Docker的原理容器有效的将单个操作系统管理的资源划分到孤立的组中,以便更好的在孤立的组之间平衡有冲突的资源使用需求。
与虚拟化相比,这样既不需要指令级模拟,也不需要即时编译。
容器可以在核心CPU 本地运行指令,而不需要任何专门的解释机制。
此外,也避免了准虚拟化(paravirtualization)和系统调用替换中的复杂性。
简而言之就是,Docker是一个盒子,一个盒子装一个玩具,无论你丢在哪里,你给他通电(glibc),他就能运行。
你的玩具大就用大盒子,小玩具就用小盒子。
两个应用之间的环境是环境是完全隔离的,建立通信机制来互相调用。
容器的创建和停止都十分快速(秒级),容器自身对资源的需求十分有限,远比虚拟机本身占用的资源少。
二:第一个docker案例2.1:执行docker run hello-world2.2:docker run做了什么?2.3:Docker镜像命令docker images 列出本地主机上的镜像REPOSITORY:表示镜像的仓库源TAG:镜像的标签注意:同一个仓库源可以有多个TAG,代表这个仓库源的不同版本,使用REPOSITORY:TAG来定义不同的镜像;如果不指定一个镜像的版本标签,默认会使用XX:latest镜像;IMAGE ID:镜像的idCREATED:镜像创建的时间VIRTUAL SIZE:镜像的大小2.4:docker search [某个镜像的名字]2.5:docker pull [某个镜像的名字]下载镜像:docker pull [镜像的名字]:[TAG]2.6:docker rmi -f [镜像的名字]/[镜像的id]删除镜像:docker rmi -f 19b3f968b60c2.7:docker rmi -f 镜像名:TAG 镜像名:TAG删除多个镜像:docker rmi -f hello-world nginx2.8:docker rmi -f $(docker images -qa) 删除所有镜像。
Docker入门教程ppt课件
Docker入门介绍
最新版整理ppt
1
第一PPT模板网,
简介
Docker在2013年诞生,GO语言实现,C/S结构,是一个开源的应用容器 引擎,类似于沙箱技术,让开发者可以打包他们的应用以及依赖包到一个 可移植的容器中,然后发布到任何流行的 Linux 机器上,能够通过对应用 的封装、分发、部署、运行提供一站式解决方案
开发、测试和发布中应用docker
修复bug 提bug
最新版整理ppt
研发编码 提交基线 运维部署
修复bug
运维人员 制作镜像
基于容器 开发
提供应用 镜像
测试
测试
问题 反馈
测试通过
提bug
部署上线
第一PPT模板网,
问题 反馈
测试通过
13 部署上线
周边关系
CoreOS Rocket
Dockerfile
docker核心知识总结
docker核心知识总结容器与镜像容器:轻量级、独立的运行环境,包含应用程序及其依赖项,与底层操作系统隔离。
镜像:容器的静态模板,包含构建容器所需的指令和文件。
Docker架构Docker客户端:用户与Docker守护进程之间的接口。
Docker守护进程:在主机上管理容器创建、启动、停止和其他操作。
Docker注册表:存储和分发Docker镜像的中心仓库。
Docker命令docker build:根据Dockerfile构建镜像。
docker run:从镜像启动容器。
docker stop:停止容器。
docker start:启动容器。
docker ps:列出正在运行的容器。
docker images:列出本地镜像。
Docker网络容器网络:每个容器都有自己的网络命名空间,提供网络隔离。
Docker网络模式:指定容器如何与其他容器和主机网络交互,例如bridge模式或host模式。
Docker Compose:一个工具,用于定义和管理多容器应用程序。
Docker存储卷:用于在容器和主机之间共享数据。
Docker卷类型:bind挂载、volume挂载和tmpfs挂载。
Docker存储驱动程序:管理持久存储,例如overlay2和devicemapper。
Docker安全Docker镜像安全:扫描镜像是否存在漏洞和恶意软件。
Docker容器安全:配置容器设置(端口映射、卷权限)以增强安全性。
Docker注册表安全:使用安全凭据和加密机制保护注册表中的镜像。
Docker编排Docker Swarm:一个用于管理和编排Docker容器的工具。
Kubernetes:一个更高级的容器编排系统,提供服务发现、滚动更新和自动扩缩容。
Docker最佳实践使用多阶段构建:优化镜像大小和安全性。
创建可重复的Dockerfile:确保容器构建的可预测性。
使用卷:在容器和主机之间持久存储数据。
管理容器日志:启用日志记录并收集容器输出。
Docker基础——从入门到精通
Docker基础——从⼊门到精通⼀个完整的docker由⼏个部分组成?docker clientdocker daemondocker imagesdocker containers容器是⼀个存储、运输⼯具,它能对容器内部的东西做出环境隔离,也就是能虚拟出相对隔离的环境。
镜像:创建容器所使⽤的模板,存放在镜像仓库中。
docker是⼀个c/s架构docker 与 kvm 的对⽐kvm是虚拟出来的虚拟机,也就是整个操作系统,使⽤起来⽐较复杂,启动的过程也相对较慢,模板⽂件较⼤。
但是虚拟出来的系统和物理完全隔离,虚拟的完整的系统,可以登录并实现管理。
docker是虚拟出来⼀个⽤户空间,使⽤起来⾮常轻便简单,启动的速度⾮常快,模板⽂件很⼩,在⼀定程度上和物理机隔离仅仅是虚拟出来⼀部分⽤户空间,不⽅便管理。
docker使⽤理由快速部署、实现隔离、⼀个主机可以运⾏多个容器、提⾼开发的效率简化配置过程,实现软件的跨平台。
docker拉取镜像是在dokerhub上拉去,所以要配置阿⾥云的容器镜像的加速服务。
docker的部署:阿⾥mirros上找到docker-ce.repo的yum源,并下载。
然后执⾏yum install docker-ce -y然后在docker配置阿⾥的镜像加速,然后启动docker的后台进程。
docker-image操作docker image lsdocker pull busyboxdocker image history busyboxdocker image history busybox --no-truncdocker image save busybox > busybox.tardocker image save busybox:1.31.0 -o busybox.tardocker image rm busyboxdocker image rm busybox:1.31.0docker image load < busybox.tardocker image load -i busybox.tardocker image inspect busyboxdocker image prunedocker image prune -fdocker iamge tag busybox:1.31.1 ken:v1基于dockerfilebuilt ——push —— 镜像仓库import —— 基于容器来制作imagedocker 容器操作docker run -d nginxdocker psdocker ps --no-truncdocker inspect container-namedocker -vdocker对内核的要求较⾼,内核版本⾄少3.8以上,uname -r查看内核版本。
Docker培训文档完整版本
网络(network)----------none
▪ 这个模式和前两个不同。在这种模式下,Docker 容器拥有自己的Network Namespace,但是,并不为 Docker容器进行任何网络配置。也就是说,这个 Docker容器没有网卡、IP、路由等信息。需要我们自 己为Docker容器添加网卡、配置IP等。
Page ▪ 26
Docker 背后干了什么?
▪我们创建了一个容器 ▪它拥有:
文件系统(基于busybox镜像) 网络栈(具有私有网络服务) 进程空间 ▪自动安装 docker会自动检查本地是否有busybox镜像(一 个测试版本的linux系统),如果没有则自动下载并 启动 ▪通过调用宿主机上的bash启动进程,并打印 “Helloworld”
Page ▪ 27
Page ▪ 28
谢谢!
此课件下载可自行编辑修改,此课件供参考! 部分内容来源于网络,如有侵权请与我联系删除!感谢你的观看!
☆ 更简单的管理 使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都 以增量的方式被分发和更新,从而实现自动化并且高效的管理。
☆ 一致的运行环境 开发过程中一个常见的问题是环境一致性问题,由于开发环境,测试环境,生产环境 不一致,导致有些bug并未在开发过程中被发现,而Docker的镜像提供了除内核外完 整的运行时环境,确保了应用运行环境一致性。从而不会再出现(这段代码在我机器 上运行没问题啊)zz这类问题 ☆ 更轻松的迁移 由于Docker确保了执行环境的一致性,使得应用的迁移更加容易,Docker可以在很 多平台上运行,无论是物理机,虚拟机,公有云,私有云,甚至是比较本,其运行结 果是一致的,因此用户可以很轻易的将在一个平台上运行的应用,迁移到另一个平台 上,而不用担心运行环境的变化导致应用无法正常运行的情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
秘密▲
使用Docker:Working with Containers
Running a Web Application in Docker
-P flag: tells Docker to map any required network ports inside our container to our host. This lets us view our web application. training/webapp: is a pre-built image we've created that contains a simple Python Flask web application. python app.py: launches our web application.
如果要获取最新的docker版本,你需要location到docker repository,按如下方式执行 curl脚本即可:
Docker当前最新版本为1.1.2
秘密▲
Dockerizing Applications: A "Hello world"
Hello world
docker run : The combination runs containers. ubuntu:14.04 : This is the source of the container we ran. Docker calls this an image. In this case we used an Ubuntu 14.04 operating system image.【也可以直接写ubuntu,这样获取的 是ubuntu:latest image】 /bin/echo ‘Hello world‘ :told Docker what command to run inside our new container When our container was launched Docker created a new Ubuntu 14.04 environment and then executed the/bin/echo command inside it. We saw the result on the command:Hello world
Docker LXC(Linux Containers) Union FS Cgroups Linux Kernel Namespaces
Cgroups:实现了对资源的配额和 度量。 UnionFS:是一种支持将不同目录 挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem)的文件系统 LXC:Linux Container,提供了一 种操作系统级的虚拟化方法。借助于 namespace的隔离机制和cgroup限 额功能来管理container
安装Docker
秘密▲
准备一个Ubuntu Trusty 14.04 (LTS) (64-bit)版本,如ubuntu-14.04.1-server-amd64.iso Ubuntu Trusty comes with a 3.13.0 Linux kernel, and a docker.io package which installs Docker 0.9.1 and all its prerequisites from Ubuntu‘s repository. 因此,你很容易得 到docker的0.9.1版本,如下:
DOCKER 基础培训
主讲人:陈力 日期:2014-8-10 TD RNC无线软件部
秘密▲
了解Docker
Docker is an open platform for developing, shipping, and running applications. At its core, Docker provides a way to run almost any application securely isolated in a container. 建立一个APP的开发和运维环境 你需要考虑? 快速建立N个这样的APP开发和运维环境 你应该考虑?
秘密▲
了解Docker
Docker uses a client-server architecture. The Docker client talks to the Docker daemon, which does the heavy lifting of building, running, and distributing your Docker containers. Both the Docker client and the daemon can run on the same system, or you can connect a Docker client to a remote Docker daemon. The Docker client and daemon communicate via sockets or through a RESTful API.
image
imstries hold images. These are public or private stores from which you upload or download images. The public Docker registry is called Docker Hub.
Compile error?
OS version?
Dependency?
App Development &Operations
App Development & Operations
Docker
App Development & Operations
Configuration?
Machine halt? App version?
秘密▲
秘密▲
Refresher on Docker
典型的Linux启动到运行需要两个FS :bootfs + rootfs 。 bootfs 主要包含 bootloader 和 kernel, bootloader主要是引导加载kernel, 当boot成功后 kernel 被加载到内存中后 bootfs就被 umount了;rootfs (root file system) 包含的就是典型 Linux 系统中的 /dev, /proc,/bin, /etc 等 标准目录和文件。 在docker中,对 rootfs先以readonly方式加载并检查,接下来利用 union mount 将一个 readwrite 文件系统挂载在 readonly 的rootfs之上,并且允许再次将下层的 file system设定为 readonly 并且向上叠加, 这样一组readonly和一个writeable的结构构成一个container的运行目 录, 每一个被称作一个Layer。每一个对readonly层文件/目录的修改都只会存在于上层的 writeable层中。由于不存在竞争, 多个container可以共享readonly的layer。所以docker将 readonly的层称作 "image" - 对于container而言整个rootfs都是read-write的,但事实上所有的 修改都写入最上层的writeable层中, image不保存用户状态,可以用于模板、重建和复制。 从一个image启动一个container时,docker会先加载其下层image直到base image,用 户的进程运行在writeable的layer中。所有image中的数据信息以及ID、网络和lxc管理的资源 限制等具体container的配置,构成一个docker概念上的container。
Docker has exposed port 5000 (the default Python Flask port) on local docker host port ( from the range 49000 to 49900 ) 49155.
Tips:如果是在虚拟机上使用docker,local docker host为虚拟机的ip地址
Docker containers:Each container
is created from a Docker image. A Docker container holds everything that is needed for an application to run
image
image
App Development & Operations
秘密▲
了解Docker
Why not VMs?用户需要的是高效运行环境而非OS, GuestOS既浪费资源又 难于管理,轻量级的Container更加灵活和快速。
VS
秘密▲
了解Docker
Namespaces:LXC所实现的隔离性 主要是来自kernel的namespace, 其 中pid, net, ipc, mnt, uts 等 namespace将container的进程, 网络, 消息, 文件系统和hostname 隔离开
接下来,你可以使用更多的docker命令来操纵container, just try them! docker ps:List containers; docker logs <container>:Fetch the logs of a container; docker stop <container>:Stop a running container;等等
秘密▲
使用Docker:Working with Containers
秘密▲