阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Docker的核心概念

156次阅读
没有评论

共计 7851 个字符,预计需要花费 20 分钟才能阅读完成。

一、什么是 Dcoker

    相信 Docker 是什么大家都已经比较清楚了,网上有很详细的介绍,我这里只是大概描述一下。

    Docker 是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括 VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。

更多 Docker 相关教程见以下内容

Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 14.04 安装 Docker  http://www.linuxidc.com/linux/2014-08/105656.htm 

Ubuntu 使用 VNC 运行基于 Docker 的桌面系统  http://www.linuxidc.com/Linux/2015-08/121170.htm 

阿里云 CentOS 6.5 模板上安装 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm 

Ubuntu 15.04 下安装 Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm 

在 Ubuntu Trusty 14.04 (LTS) (64-bit)安装 Docker http://www.linuxidc.com/Linux/2014-10/108184.htm 

在 Ubuntu 15.04 上如何安装 Docker 及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm 

Docker 通常用于如下场景:

  • web 应用的自动化打包和发布;

  • 自动化测试和持续集成、发布;

  • 在服务型环境中部署和调整数据库或其他的后台应用;

  • 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

二、Docker 的三大核心概念

Docker 镜像

    Docker 镜像(Image)类似与虚拟机的镜像,可以将他理解为一个面向 Docker 引擎的只读模板,包含了文件系统。

    例如:一个镜像可以完全包含了 Ubuntu 操作系统环境,可以把它称作一个 Ubuntu 镜像。镜像也可以安装了 Apache 应用程序(或其他软件),可以把它称为一个 Apache 镜像。

    镜像是创建 Docker 容器的基础,通过版本管理和增量的文件系统,Docker 提供了一套十分简单的机制来创建和更新现有的镜像。

    用户可以从网上下载一个已经做好的应用镜像,并通过命令直接使用。

    总之,应用运行是需要环境的,而镜像就是来提供这种环境。

Docker 容器

    Docker 容器(Container)类似于一个轻量级的沙箱子(因为 Docker 是基于 Linux 内核的虚拟技术,所以消耗资源十分少),Docker 利用容器来运行和隔离应用。

    容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相互隔离、互不可见的。

    可以吧每个容器看作一个简易版的 Linux 系统环境(包括了 root 用户权限、进程空间、用户空间和网络空间),以及与运行在其中的应用程序打包而成的应用盒子。

    镜像自身是只读的。容器从镜像启动的时候,Docker 会在镜像的最上层创建一个可写层,镜像本身将保持不变。就像用 ISO 装系统之后,ISO 并没有什么变化一样。

 

Docker 仓库

    Docker 仓库(Repository)类似与代码仓库,是 Docker 集中存放镜像文件的场所。

    有时候会看到有资料将 Docker 仓库和注册服务器(Registry)混为一谈,并不严格区分。实际上,注册服务器是存放仓库的地方,其上往往存放着多个仓库。每个仓库集中存放某一类镜像,往往包括多个镜像文件,通过不同的标签(tag)来进行区分。例如存放 Ubuntu 操作系统镜像的仓库,称为 Ubuntu 仓库,其中可能包括 14.04,12.04 等不同版本的镜像。

    根据存储的镜像公开分享与否,Docker 仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

    目前,最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括 Docker Pool 等,可以提供稳定的国内访问。山东理工大学开源社区什么时候搞个这个啊,可以提上进程。

    如果用户不希望公开分享自己的镜像文件,Docker 也支持用户在本地网络内创建一个只能自己访问的私有仓库。

    当用户创建了自己的镜像之后就可以使用 push 明亮将它上传到指定的公有或则私有仓库。这样用户下次在另一台机器上使用该镜像时,只需将其从仓库 pull 下来就可以了。

    Docker 利用仓库管理镜像的设计理念甚至命令和 git 非常相似,也就意味着非常好上手,尽管目前我 git 还不是很熟练。

三、Docker 的安装及简单使用

    因为工作的原因,我个人比较习惯使用 CentOS 6 系列的系统,下面我主要讲一下 CentOS 6/ 7 的安装方法。

    对于 CentOS 6 系统需要使用 epel 库安装 Docker,我这里使用的是阿里云的 epel 源,如下

1
2
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo
yum install docker-io -y

    对于 CentOS 7 来说,由于其中已经内置 Docker,我们可以直接使用 yum 命令进行安装

1
yum install docker -y

    CentOS 7 对于 Docker 的支持比较好,因为我个人习惯的缘故,我后面的操作都是在 CentOS 6 上面进行操作的。

    Docker 系统有两个程序:docker 服务端和 docker 客户端。其中 docker 服务端是一个服务进程,管理着所有的容器。docker 客户端则扮演着 docker 服务端的远程控制器,可以用来控制 docker 的服务端进程。大部分情况下,docker 服务端和客户端运行在一台机器上。

    在我们使用 Docker 之前,我们首先应该启动 Docker 服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@test ~]# service docker start
Starting docker:                                           [OK]
  
# 查看 Docker 版本
[root@test ~]# docker version   
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d/1.7.1
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d/1.7.1
OS/Arch (server): linux/amd64

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-08/134232p2.htm

一、搜索镜像

Usage: docker search [OPTIONS]

    我们搜索一下 CentOS 的镜像。

1
docker search centos

Docker 的核心概念

二、下载镜像

Usage: docker pull [OPTIONS] NAME[:TAG|@DIGEST]

    我们这里选择 CentOS 6 的镜像来进行演示。

1
docker pull jdeathe/centos-ssh

Docker 的核心概念

三、查看镜像信息

1、查看当前的镜像

1
2
3
[root@test ~]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
jdeathe/centos-ssh   latest              6d0ed368c736        4 weeks ago         230.1 MB

2、查看某镜像的信息

Usage: docker inspect [OPTIONS] CONTAINER|IMAGE [CONTAINER|IMAGE…]

    会打印镜像的很多信息,比如主机名,IP,存储等等一些配置信息,因为太多,我这里不再进行展示。

1
docker inspect jdeathe/centos-ssh

四、删除 镜像

Usage: docker rmi [OPTIONS] IMAGE [IMAGE…]

    大家可以自行进行测试。

1
docker rmi jdeathe/centos-ssh

五、创建镜像

Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

 

Create a new image from a container’s changes

 

  -a, –author=       Author (e.g., “John Hannibal Smith <hannibal@a-team.com>”)

  -m, –message=      Commit message

  -p, –pause=true    Pause container during commit

    这个后续部分再进行演示。

六、存出和载入镜像

Usage: docker save [OPTIONS] IMAGE [IMAGE…]

Usage: docker load [OPTIONS]

一、什么是 Dcoker

    相信 Docker 是什么大家都已经比较清楚了,网上有很详细的介绍,我这里只是大概描述一下。

    Docker 是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括 VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。

更多 Docker 相关教程见以下内容

Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 14.04 安装 Docker  http://www.linuxidc.com/linux/2014-08/105656.htm 

Ubuntu 使用 VNC 运行基于 Docker 的桌面系统  http://www.linuxidc.com/Linux/2015-08/121170.htm 

阿里云 CentOS 6.5 模板上安装 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm 

Ubuntu 15.04 下安装 Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm 

在 Ubuntu Trusty 14.04 (LTS) (64-bit)安装 Docker http://www.linuxidc.com/Linux/2014-10/108184.htm 

在 Ubuntu 15.04 上如何安装 Docker 及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm 

Docker 通常用于如下场景:

  • web 应用的自动化打包和发布;

  • 自动化测试和持续集成、发布;

  • 在服务型环境中部署和调整数据库或其他的后台应用;

  • 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

二、Docker 的三大核心概念

Docker 镜像

    Docker 镜像(Image)类似与虚拟机的镜像,可以将他理解为一个面向 Docker 引擎的只读模板,包含了文件系统。

    例如:一个镜像可以完全包含了 Ubuntu 操作系统环境,可以把它称作一个 Ubuntu 镜像。镜像也可以安装了 Apache 应用程序(或其他软件),可以把它称为一个 Apache 镜像。

    镜像是创建 Docker 容器的基础,通过版本管理和增量的文件系统,Docker 提供了一套十分简单的机制来创建和更新现有的镜像。

    用户可以从网上下载一个已经做好的应用镜像,并通过命令直接使用。

    总之,应用运行是需要环境的,而镜像就是来提供这种环境。

Docker 容器

    Docker 容器(Container)类似于一个轻量级的沙箱子(因为 Docker 是基于 Linux 内核的虚拟技术,所以消耗资源十分少),Docker 利用容器来运行和隔离应用。

    容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相互隔离、互不可见的。

    可以吧每个容器看作一个简易版的 Linux 系统环境(包括了 root 用户权限、进程空间、用户空间和网络空间),以及与运行在其中的应用程序打包而成的应用盒子。

    镜像自身是只读的。容器从镜像启动的时候,Docker 会在镜像的最上层创建一个可写层,镜像本身将保持不变。就像用 ISO 装系统之后,ISO 并没有什么变化一样。

 

Docker 仓库

    Docker 仓库(Repository)类似与代码仓库,是 Docker 集中存放镜像文件的场所。

    有时候会看到有资料将 Docker 仓库和注册服务器(Registry)混为一谈,并不严格区分。实际上,注册服务器是存放仓库的地方,其上往往存放着多个仓库。每个仓库集中存放某一类镜像,往往包括多个镜像文件,通过不同的标签(tag)来进行区分。例如存放 Ubuntu 操作系统镜像的仓库,称为 Ubuntu 仓库,其中可能包括 14.04,12.04 等不同版本的镜像。

    根据存储的镜像公开分享与否,Docker 仓库分为公开仓库(Public)和私有仓库(Private)两种形式。

    目前,最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括 Docker Pool 等,可以提供稳定的国内访问。山东理工大学开源社区什么时候搞个这个啊,可以提上进程。

    如果用户不希望公开分享自己的镜像文件,Docker 也支持用户在本地网络内创建一个只能自己访问的私有仓库。

    当用户创建了自己的镜像之后就可以使用 push 明亮将它上传到指定的公有或则私有仓库。这样用户下次在另一台机器上使用该镜像时,只需将其从仓库 pull 下来就可以了。

    Docker 利用仓库管理镜像的设计理念甚至命令和 git 非常相似,也就意味着非常好上手,尽管目前我 git 还不是很熟练。

三、Docker 的安装及简单使用

    因为工作的原因,我个人比较习惯使用 CentOS 6 系列的系统,下面我主要讲一下 CentOS 6/ 7 的安装方法。

    对于 CentOS 6 系统需要使用 epel 库安装 Docker,我这里使用的是阿里云的 epel 源,如下

1
2
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo
yum install docker-io -y

    对于 CentOS 7 来说,由于其中已经内置 Docker,我们可以直接使用 yum 命令进行安装

1
yum install docker -y

    CentOS 7 对于 Docker 的支持比较好,因为我个人习惯的缘故,我后面的操作都是在 CentOS 6 上面进行操作的。

    Docker 系统有两个程序:docker 服务端和 docker 客户端。其中 docker 服务端是一个服务进程,管理着所有的容器。docker 客户端则扮演着 docker 服务端的远程控制器,可以用来控制 docker 的服务端进程。大部分情况下,docker 服务端和客户端运行在一台机器上。

    在我们使用 Docker 之前,我们首先应该启动 Docker 服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@test ~]# service docker start
Starting docker:                                           [OK]
  
# 查看 Docker 版本
[root@test ~]# docker version   
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d/1.7.1
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d/1.7.1
OS/Arch (server): linux/amd64

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-08/134232p2.htm

一、新建 并启动容器

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG…]

Docker 的核心概念

    下面的命令则启动一个 bash 终端,允许用户进行交互,其中的一些选项的意义大家请参考上面的帮助:

1
docker run -ti jdeathe/CentOS-ssh /bin/bash

Docker 的核心概念

    docker ps -a 可以查看当前容器的运行状态,我们直接使用 exit 退出之后,容器就自动处于终止状态了,这是因为对于 Docker 容器来说,当运行的应用 bash 退出后,容器也就没有继续运行的必要了。

    更多的时候,需要让 Docker 容器在后头以守护进程形式运行。用户可以通过添加 -d 参数来实现。

    可以通过 - p 参数来吧容器的端口映射出来,我这里是把容器的 22 端口映射到宿主机的 8022 端口。

1
docker run -d -p 8022:22 jdeathe/centos-ssh

Docker 的核心概念

二、终止容器

 

Usage: docker stop [OPTIONS] CONTAINER [CONTAINER…]

三、进入容器

    在使用 - d 参数时,容器启动后会进入后台,用户无法看到容器中信息,某些时候如果需要进入容器进行操作,我们就需要进入到容器内部,Docker 提供了一个方便的工具 exec。

Usage: docker exec [OPTIONS] CONTAINER COMMAND [ARG…]

1
docker exec -ti 86e /bin/bash

Docker 的核心概念

四、删除容器

Usage: docker rm [OPTIONS] CONTAINER [CONTAINER…]

五、导入导出容器

Usage: docker export [OPTIONS] CONTAINER

Usage: docker import [OPTIONS] URL|- [REPOSITORY[:TAG]]

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/134232.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计7851字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中