容器技术

docker入门

青春壹個敷衍的年華 提交于 2020-01-01 13:39:58
docker入门 在学一门新知识的时候,超哥喜欢提问, why?what?how? wiki资料 什么是docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。 Docker 使用 Google 公司推出的 Go 语言 进行开发实现。 docker是linux容器的一种封装,提供简单易用的容器使用接口。它是最流行的Linux容器解决方案。 docker的接口相当简单,用户可以方便的创建、销毁容器。 docker将应用程序与程序的依赖,打包在一个文件里面。运行这个文件就会生成一个虚拟容器。 程序运行在虚拟容器里,如同在真实物理机上运行一样,有了docker,就不用担心环境问题了。 docker应用场景 web应用的自动化打包和发布 自动化测试和持续集成、发布 在服务型环境中部署和调整数据库或其他应用 为什么要用docker? 我们先看看很久很久以前,服务器是怎么部署应用的! 由于物理机的诸多问题,后来出现了虚拟机 但是虚拟化也是有局限性的,每一个虚拟机都是一个完整的操作系统,要分配系统资源,虚拟机多道一定程度时,操作系统本身资源也就消耗殆尽,或者说必须扩容 docker与虚拟机的区别 docker VS

docker入门

怎甘沉沦 提交于 2020-01-01 13:39:41
什么是docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护。 Docker 使用 Google 公司推出的 Go 语言 进行开发实现。 docker是linux容器的一种封装,提供简单易用的容器使用接口。它是最流行的Linux容器解决方案。 docker的接口相当简单,用户可以方便的创建、销毁容器。 docker将应用程序与程序的依赖,打包在一个文件里面。运行这个文件就会生成一个虚拟容器。 程序运行在虚拟容器里,如同在真实物理机上运行一样,有了docker,就不用担心环境问题了。 docker应用场景 web应用的自动化打包和发布 自动化测试和持续集成、发布 在服务型环境中部署和调整数据库或其他应用 为什么要用docker? 我们先看看很久很久以前,服务器是怎么部署应用的! 由于物理机的诸多问题,后来出现了虚拟机 但是虚拟化也是有局限性的,每一个虚拟机都是一个完整的操作系统,要分配系统资源,虚拟机多道一定程度时,操作系统本身资源也就消耗殆尽,或者说必须扩容 docker与虚拟机的区别 docker VS 传统虚拟机 特性 容器 虚拟机 启动 秒级 分钟级 硬盘使用 一般为 MB 一般为 GB 性能

docker学习1

瘦欲@ 提交于 2020-01-01 13:38:42
Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术。在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单 docker和虚拟机的区别: 虚拟机:每台虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作子系统 docker:通过容器技术和我们的宿主机共享硬件资源和操作系统,实现资源的动态分配。Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。而 Linux 容器是 Linux 发展出的另一种虚拟化技术,简单来讲, Linux 容器不是模拟一个完整的操作系统,而是对进程进行隔离,相当于是在正常进程的外面套了一个保护层。对于容器里面的进程来说,它接触到的各种资源都是虚拟的,从而实现与底层系统的隔离。Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker ,就不用担心环境问题。 docker的三个概念: Image(镜像),Container(容器),Repository(仓库) 镜像是 Docker

Docker系列01—容器的发展历程---Docker的生态圈

╄→гoц情女王★ 提交于 2020-01-01 13:32:15
Docker系列01—容器的发展历程---Docker的生态圈 分类: 容器服务系列 本文收录在 容器技术学习系列文章总目录   Docker 和容器技术的发展可谓是日新月异,本文试图以全局的视角来梳理一下 docker 目前的生态圈。既然是概览,所以不会涉及具体的技术细节。   Docker 自从发布以来发生了很多的变化,并且有些方面的变化还非常大。对于技术爱好者来说,我们喜欢酷毙新的功能,喜欢旧功能的改善。但对于生产环境中的使用者来说,其实不太喜欢这种频繁的变化!不管怎样,我们都有必要理清 docker 生态系统中的众多概念及它们之间的关系,以及 docker 自诞生至今(2018 年)的里程碑性事件。 一、百花齐放的容器技术   虽然 docker 把容器技术推向了巅峰,但容器技术却不是从 docker 诞生的。实际上,容器技术连新技术都算不上,因为它的诞生和使用确实有些年头了。下面的一串名称肯能有的你都没有听说过,但它们的确都是容器技术的应用: Chroot Jail FreeBSD Jails Linux VServer Solaris Containers OpenVZ Process Containers LXC Warden LMCTFY Docker RKT 1、Chroot Jail 就是我们常见的 chroot 命令的用法。它在 1979 年的时候就出现了

8 分钟入门 K8s | 详解容器基本概念

半世苍凉 提交于 2020-01-01 13:32:03
一、容器与镜像 什么是容器? 在介绍容器的具体概念之前,先简单回顾一下操作系统是如何管理进程的。 首先,当我们登录到操作系统之后,可以通过 ps 等操作看到各式各样的进程,这些进程包括系统自带的服务和用户的应用进程。那么,这些进程都有什么样的特点? 第一,这些进程可以相互看到、相互通信; 第二,它们使用的是同一个文件系统,可以对同一个文件进行读写操作; 第三,这些进程会使用相同的系统资源。 这样的三个特点会带来什么问题呢? 因为这些进程能够相互看到并且进行通信,高级权限的进程可以攻击其他进程; 因为它们使用的是同一个文件系统,因此会带来两个问题:这些进程可以对于已有的数据进行增删改查,具有高级权限的进程可能会将其他进程的数据删除掉,破坏掉其他进程的正常运行;此外,进程与进程之间的依赖可能会存在冲突,如此一来就会给运维带来很大的压力; 因为这些进程使用的是同一个宿主机的资源,应用之间可能会存在资源抢占的问题,当一个应用需要消耗大量 CPU 和内存资源的时候,就可能会破坏其他应用的运行,导致其他应用无法正常地提供服务。 针对上述的三个问题,如何为进程提供一个独立的运行环境呢? 针对不同进程使用同一个文件系统所造成的问题而言,Linux 和 Unix 操作系统可以通过 chroot 系统调用将子目录变成根目录,达到视图级别的隔离;进程在 chroot 的帮助下可以具有独立的文件系统

8 分钟入门 K8s | 详解容器基本概念

拈花ヽ惹草 提交于 2020-01-01 13:31:41
一、容器与镜像 什么是容器? 在介绍容器的具体概念之前,先简单回顾一下操作系统是如何管理进程的。 首先,当我们登录到操作系统之后,可以通过 ps 等操作看到各式各样的进程,这些进程包括系统自带的服务和用户的应用进程。那么,这些进程都有什么样的特点? 第一,这些进程可以相互看到、相互通信; 第二,它们使用的是同一个文件系统,可以对同一个文件进行读写操作; 第三,这些进程会使用相同的系统资源。 这样的三个特点会带来什么问题呢? 因为这些进程能够相互看到并且进行通信,高级权限的进程可以攻击其他进程; 因为它们使用的是同一个文件系统,因此会带来两个问题:这些进程可以对于已有的数据进行增删改查,具有高级权限的进程可能会将其他进程的数据删除掉,破坏掉其他进程的正常运行;此外,进程与进程之间的依赖可能会存在冲突,如此一来就会给运维带来很大的压力; 因为这些进程使用的是同一个宿主机的资源,应用之间可能会存在资源抢占的问题,当一个应用需要消耗大量 CPU 和内存资源的时候,就可能会破坏其他应用的运行,导致其他应用无法正常地提供服务。 针对上述的三个问题,如何为进程提供一个独立的运行环境呢? 针对不同进程使用同一个文件系统所造成的问题而言,Linux 和 Unix 操作系统可以通过 chroot 系统调用将子目录变成根目录,达到视图级别的隔离;进程在 chroot 的帮助下可以具有独立的文件系统

容器化的 DevOps 工作流

北慕城南 提交于 2020-01-01 13:31:21
对于 devops 来说,容器技术绝对是我们笑傲江湖的法宝。本文通过一个小 demo 来介绍如何使用容器技术来改进我们的 devops 工作流。 devops 的日常工作中难免会有一些繁琐的重复性劳动。比如管理 Azure 上的各种资源,我们会使用 Azure CLI 工具。同时我们也会使用 Ansible 完成一些自动化的任务。当我们同时使用二者的时候就会碰到一些尴尬的事情:Azure CLI 依赖的 python 版本为 3.x,而 Ansible 的主流版本还在依赖 python 2.x。如果我们要同时使用二者,就需要在环境中搞一些飞机。如果团队中的每个成员都需要使用这样的工具,那么每个人的环境中都需要这些飞机!下面是一些比较类似的问题: 一些工作流在陌生的环境中不能正确的工作 在工作流中加入新的工具时,整个团队都需要获取并安装这些新的工具 运行 devops 工作流不能对当前的环境产生影响(应该允许在 build 环境中运行 devops 工作流) 工作流的变化不会对运行环境产生任何的影响 实现这些需求的最好方式就是容器技术!通过容器把我们的 devops 工作流和运行环境隔离开就可以了。文本的 demo 会演示一个非常简单的使用 Azure CLI 的工作流,我们的目标是为整个团队打造一个满足以上需求的工具集(容器镜像)。其大体步骤如下: 创建构造容器镜像的

Docker简介以及使用docker搭建lnmp的过程(多PHP版本)

不问归期 提交于 2020-01-01 13:31:03
一、Docker基础 Docker安装 Docker 要求 Ubuntu 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的 Ubuntu 版本是否支持 Docker。 通过 uname -r 命令查看你当前的内核版本 通过 apt-get install docker.io 安装docker Docker常见命令 容器相关操作 docker create # 创建一个容器但是不启动它 例如: docker create -- name mycon php :5.6-fpm docker run # 创建并启动一个容器     -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;     -d: 后台运行容器,并返回容器ID;     -i: 以交互模式运行容器,通常与 -t 同时使用;     -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;     --name="nginx-lb": 为容器指定一个名称;     -P: 容器的80端口映射到主机的随机端口     -p: 容器的端口映射到主机的对应端口,例如: -p 80:80     -v: 主机的目录映射(挂载)到容器的目录,例如:-v /home/ubuntu/nginx/www:/www     -m 或 --memory:设置内存使用限额。例如

Docker的基本使用

帅比萌擦擦* 提交于 2020-01-01 13:23:41
Docker简介   Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。   它是一项 虚拟化技术,应用场景广泛如web部署 可以快速部署我们的应用。 cgroup 技术帮我们实现资源的限制 namespace 来完成对资源的隔离。 docker的安装   参考文档: https://blog.csdn.net/nimoyaoww/article/details/79155489 docker的基本操作 docker images          查看本地的镜像 docker search 镜像名      搜索网上的相关镜像 docker pull 镜像名       拉取你要的镜像 docker rmi 镜像名        删除镜像 docker save 镜像名|gzip>>保存的文件名.tar.gz 将拉取下来的镜像保存在本地 docker load < 保存的文件名.tar.gz 将保存的镜像文件重新加载 docker inspect 容器名或id             能查看到此容器的信息 docker logs 容器名或id               查看日志 如果加了-f 参数就可以动态查看日志 docker

Docker简介

僤鯓⒐⒋嵵緔 提交于 2020-01-01 13:22:54
Docker基本概念 Docker客户端和服务器,又称Docker引擎 镜像(image) 容器(container) 仓库(Repository) Docker客户端和服务器 Docker是一个客户端/服务器(C/S)架构的程序。Docker客户端只需向Docker服务器或守护进程发出请求,服务器或守护进程将完成所有工作并返回结果。Docker守护进程有时也称为Docker引擎。Docker提供了一个命令行工具docker以及一整套RESTful API来与守护进程交互。用户可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。 Docker镜像 操作系统有内核态和用户态两种运行级别。对于linux而言,内核启动后,会挂载root文件系统为其提供用户空间支持。而Docker镜像就相当于是一个root文件系统。比如Docker官方镜像ubuntu:14.04就包含了完整的一套Ubuntu14.04最小系统的root文件系统。 Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 用户基于镜像来运行自己的容器