Docker -1

Docker:
    1.Getting Started with Docker
    2.Handling Docker Containers
    3.Building Images
    4.Publishing Images
    5.Running Your Private Docker Infrastructure
    6.Running Services in a Container
    7.Sharing Data with Containers
    8.Orchestrating Containers
    9.Testing with Docker
    10.Debugging Containers
    11.Securing Docker Containers
本书主要从11个主题讲了有关Docker的基础内容,包括概念说明,容器处理,镜像的创建和发布,创建和允许自己的Docker服务,在容器中允许服务,容器的分层架构
使用Docker进行测试,调试容器,Docker容器的安全性问题等。

虚拟化,是抽象的一种,在软件和硬件之间增加一层,来解耦软件对硬件的依赖。
Virtualization Paradigm 由于每个VM都有自己的操作系统,自身体积显得过于繁杂肿大,启动准备也需要耗费很长时间。
资源的超载利用也会造成性能降低等缺点。
Hypervisor开辟了一条新的应用便携性的方式,随着计算虚拟化的兴起,其相关的辅助概念
网络和存储也开始了虚拟化进程。开始研究通过VM来交换来实现应用程序分布式布局。

集装箱化Containerization的出现很好的解决了这个问题。
一个容器包含一个应用程序,所有与该程序有关的类库,binary文件,以及其它的依赖对象,组件,实体等。
要求容器轻量化,高便携性,容易快速启动等等。

Docker提供了类似原生系统的性能,很好的满足的承担应用程序容器的角色,推荐一个容器只用于一个应用或者服务。

Docker是什么?
overwhelming 压倒性的
be stuffed with 被..塞满
pathbreaking 开创性的
decisive 决定性的;果断的,坚定的
Docker是一个开源的集装箱引擎,自动打包装载以及部署任何应用程序。
轻量级,便携,自满足容器。
一个Docker就是一个软件篮子,装着运行软件所需的一切依赖。
一个机器上可以有多个Docker容器,它们之间相互以及和主机之间都是完全隔离的。

每个Docker都有自己的处理器空间和网络接口,它可以作为运行一些东西的根入口,有自己的
/sbin/init等。

总之,Docker方案让我们能快速打包组合企业级商业标准级别的程序。
Docker的主要组件有:
  Docker engine:根据特定的目的需要生成的Docker容器
  Docker Hub:Docker 镜像库
  

Docker运行在Linux上:
一个docker引擎可以创建,监控和管理多个Docker容器。
Docker主程序运行在Linux内核上,它由Docker引擎和客户端组成。

Linux内核的一些迄今为止还未被充分使用的能力被重新发现,这些能力

集装箱化和虚拟化的区别:
VM 是硬件级别的虚拟化,而容器化是操作系统级别的虚拟化
VM是重量级的,而Container是轻量级的
VM启动和初始化慢,而Container则是实时启动和可扩展性
VM性能是受到限制的,而Container则是原生性能
VM是完全隔离的所以更加安全,而Container是进程级隔离,相对安全性差点。

容器化和虚拟化聚和:
容器技术:
LXC(Linux Containers)它是所有容器技术之父,它展现了一个操作系统级别的虚拟化环境,用于在Linux机器上运行多个隔离开来的Linux系统。
Linux内核提供了控制组(cgroups)功能来限制和管理资源优先级(CPU,内存,块的输入和输出,网络等),而不需要开启任何的虚拟机和命名空间隔离功能,
这样可以将应用程序跟操作系统完全隔离开来,包括进程树,网络,用户id和文件系统。

OpenVZ:操作系统级别的虚拟化技术,它基于Linux 内核和操作系统。
它允许物理服务器来运行多个隔离的操作系统实例成为容器,虚拟的私有服务器VPS,或者叫虚拟环境(VEs)

FreeBSD jail:它是一种实现操作系统级别虚拟化的机制,让系统管理员将FreeBSD系统的计算机划分成多个各自独立的mini操作系统,叫做jails

AIX Workload Partitions:(WPARs),是操作系统级别虚拟技术的软件实现,提供应用程序环境隔离和资源控制。

Solaris Containers(包括Solaris Zones):为x86和SPARC操作系统实现的操作系统级别的虚拟化技术。


安装Docker引擎:
因为Docker是基于Linux内核开发出来的,因此它目前只能直接运行于Linux系统上。
Debain和Ubuntu使用apt-get命令安装
RedHat,Fedora和CentOS 使用yum安装

Ubuntu上安装:
$ sudo apt-get update

$ sudo apt-get install -y docker.io

为docker.io创建一个软件链接docker
$ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker

使用Docker社区提供的最新版本的自动安装脚本安装:
首先添加Docker释放工具库路径到我们的APT资源
$ sudo sh -c "echo deb https://get.docker.io/ubuntu \
docker main > /etc/apt/sources.list.d/docker.list"
然后导入Docker释放工具公共键
$ sudo apt-key adv --keyserver \
  hkp://keyserver.ubuntu.com:80 --recev-keys \
  36A1D7869245C8950F966E92D8576A8BA88D21E9
接着同步包库:
$ sudo apt-get update
最后安装Docker启动Docker服务
$sudo apt-get install -y lxc-docker


curl 命令安装:
$ sudo curl -sSL https://get.docker.io/ | sh

wget命令安装:
$ sudo wget -qO- https://get.docker.io/ | sh

理解Docker的安装:
主要是了解Docker的组件,它们的版本,存储,执行驱动,文件位置等。
我们可以使用如下docker字命令来检查安装情况:
docker version 和 docker info

$sudo docker -D info 可以查看更多信息

客户端和服务器的交互:
在Linux上安装的Docker一般会通过Unix socket来在服务器和客户端之间通信(/var/run/docker.sock)
Docker有一个IANA注册端口,2375,处于安全原因,默认为关闭状态。


下载第一个镜像:
安装完成后,接下来就是从Docker注册器下载镜像了。
Docker registry是一个应用程序库,它保存了各种应用从基础的Linux镜像到高级应用程序。
docker pull命令用于下载它们。
$ sudo docker pull busybox
511136ea3c5a: Pull complete
df7546f9f060: Pull complete
ea13149945cb: Pull complete
4986bf8c1536: Pull complete
busybox:latest: The image you are pulling has been verified. Important:
image verification is a tech preview feature and should not be relied on
to provide security.
Status: Downloaded newer image for busybox:latest

下载后我们可以通过如下命令查看:
$ sudo docker images

运行第一个容器:
$ sudo docker run busybox echo "Hello World!"
"Hello World!"


在AWS上运行一个Docker容器

Docker容器问题排解:
通过运行如下命令检查Docker
$ sudo service docker status

可以到如下目录查看运行日志:
 /var/log/upstart/docker.log 
 

转载于:https://my.oschina.net/u/924064/blog/822859

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值