容器

搭建Docker环境---Docker概述

自古美人都是妖i 提交于 2020-01-01 13:39:01
Docker 包括三个基本概念: 镜像(Image) 容器(Container) 仓库(Repository) 这三部分组成了Docker的整个生命周期,如下图所示,容器是由镜像实例化而来的,这和我们学习的面向对象的概念十分相似,我们可以把镜像想象成类,把容器想象成类经过实例化后的对象,这样就非常好理解镜像和容器的关系了。 Docker镜像 Docker的镜像概念类似于虚拟机里的镜像,是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。 例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了Mysql或用户需要的其它应用程序。 Docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统被称为UnionFS。镜像可以基于Dockerfile构建,Dockerfile是一个描述文件,里面包含若干条命令,每条命令都会对基础文件系统创建新的层次结构。 Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。 注:镜像是只读的,可以理解为静态文件。 Docker容器 Docker 利用容器来运行应用。 Docker容器是由Docker镜像创建的运行实例。Docker容器类似虚拟机,可以支持的操作包括启动,停止,删除等。每个容器间是相互隔离的

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学习笔记-02:docker常用命令

﹥>﹥吖頭↗ 提交于 2020-01-01 13:37:41
一、帮助命令: 1、查看版本:docker version 2、查看信息:docker info 3、查看帮助信息:docker --help 二、镜像命令: (一)、查看已有镜像: 1、命令:docker images 2、option说明: (1)-a  列出本地所有的镜像(含中间映像层) (2)-q  只显示镜像ID (3)--digests  显示镜像的摘要信息 (4)--no-trunc  显示完整的镜像信息 (二)、查看docker hub 上的镜像: 1、命令:docker search rasa 2、option说明: (1)docker search -s 10 rasa  点赞数超过10的rasa镜像 (2)docker search --no-trunc rasa  显示完整的rasa镜像描述 (三)、下载docker镜像: 命令:docker pull rasa 等价于 docker pull rasa:lastest  下载最新版 (四)、删除docker镜像: 1、命令:docker rmi rasa 2、option说明: docker rmi -f rasa  强制删除,哪怕正在运行rasa镜像 3、删除多个镜像:docker rmi -f 镜像名1:TAG 镜像名2:TAG 4、删除全部镜像:docker rmi -f $(docker

Docker简单使用

十年热恋 提交于 2020-01-01 13:37:04
镜像 是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。 容器 是镜像的运行时实例 - 实际执行时镜像会在内存中变成什么。默认情况下,它完全独立于主机环境运行,仅在配置为访问主机文件和端口的情况下才执行此操作。 1. 尝试Hello world $ docker run ubuntu:15.10 /bin/echo "Hello world" 各个参数解析: docker: Docker 的二进制执行文件。 run: 与前面的 docker 组合来运行一个容器。 ubuntu:15.10 指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。 /bin/echo "Hello world": 在启动的容器里执行的命令 以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。 2. 运行交互式的容器 $ docker run -i -t ubuntu:15.10 /bin/bash 各个参数解析: -t: 在新容器内指定一个伪终端或终端。 -i: 允许你对容器内的标准输入 (STDIN) 进行交互。

Docker示例

a 夏天 提交于 2020-01-01 13:36:14
运行一个Hello world zane@zane-V:~$ docker run ubuntu /bin/echo 'Hello world' Unable to find image 'ubuntu:latest' locally latest: Pulling from library/ubuntu b3e1c725a85f: Pull complete 4daad8bdde31: Pull complete 63fe8c0068a8: Pull complete 4a70713c436f: Pull complete bd842a2105a8: Pull complete Digest: sha256:7a64bc9c8843b0a8c8b8a7e4715b7615e4e1b0d8ca3c7e7a76ec8250899c397a Status: Downloaded newer image for ubuntu:latest Hello world zane@zane-V:~$ docker run ubuntu /bin/echo 'Hello world' Hello world docker run 运行了一个容器 Ubuntu 是你运行的image,不如说是Ubuntu 操作系统的image 如果本地没有Ubuntu image,则从Docker Hub上下载。

Docker 简单应用

﹥>﹥吖頭↗ 提交于 2020-01-01 13:35:54
Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。 输出Hello world runoob@runoob:~$ docker run ubuntu:15.10 /bin/echo "Hello world" Hello world 各个参数解析: docker: Docker 的二进制执行文件。 run:与前面的 docker 组合来运行一个容器。 ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。 /bin/echo "Hello world": 在启动的容器里执行的命令 以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。 运行交互式的容器 我们通过docker的两个参数 -i -t,让docker运行的容器实现"对话"的能力 runoob@runoob:~$ docker run -i -t ubuntu:15.10 /bin/bash root@dc0050c79503:/# 各个参数解析: -t:在新容器内指定一个伪终端或终端。 -i:允许你对容器内的标准输入 (STDIN) 进行交互。

Docker基本使用(一)

ぐ巨炮叔叔 提交于 2020-01-01 13:35:41
使用docker输入hello world   Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。 输出Hello world $ docker run ubuntu:15.10 /bin/echo "Hello world" Hello world 各个参数解析: docker: Docker 的二进制执行文件。 run: 与前面的 docker 组合来运行一个容器。 ubuntu:15.10 指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。 /bin/echo "Hello world": 在启动的容器里执行的命令 以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。 运行交互式的容器   我们通过docker的两个参数 -i -t,让docker运行的容器实现"对话"的能力 $ docker run -i -t ubuntu:15.10 /bin/bash 各个参数解析: -t: 在新容器内指定一个伪终端或终端。 -i: 允许你对容器内的标准输入 (STDIN) 进行交互。 此时我们已进入一个 ubuntu15

dock helloworld

Deadly 提交于 2020-01-01 13:33:35
Docker Hello World Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序。 输出Hello world runoob@runoob:~$ docker run ubuntu:15.10 /bin/echo "Hello world" Hello world 各个参数解析: docker: Docker 的二进制执行文件。 run: 与前面的 docker 组合来运行一个容器。 ubuntu:15.10 指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。 /bin/echo "Hello world": 在启动的容器里执行的命令 以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。 运行交互式的容器 我们通过docker的两个参数 -i -t,让docker运行的容器实现"对话"的能力 runoob@runoob:~$ docker run -i -t ubuntu:15.10 /bin/bash root@dc0050c79503:/# 各个参数解析: -t: 在新容器内指定一个伪终端或终端。 -i:

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 的帮助下可以具有独立的文件系统