Linux--Docker容器引擎

1、Docker是什么

Docker是在Linux容器里运行应用的开源工具,是一种轻量级的 "虚拟机"。诞生于2013年,最 初的发起者是dotCloud公司。后来改名为Docker Inc,专注于Docker相关技术和产品的开发。Docker 项目目前已经加人啊Linux基金会,全部开源代码均在https://github.com/docker上进行相关维护官网地址为https://www.docker.com/,有相关文档可以参考。现在Docker 与 OpenStack同为最受欢迎的云计算开源项目。

Docker 的Logo设计为蓝色鲸鱼,拖着许多集装箱。如图1.1所示,鲸鱼可以看作宿主机,而集装箱可以理解为相互隔离的容器,每个集装箱中都包含自己的应用程序。正如 Docker的设计宗旨一 样:Build、Ship and Run Any App、Anywhere,即通过对应用组件的封装、发布、部署,运行等生命周期的管理,达到应用组件级别的 "一次封装,到处运行" 的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统。

2、Docker和虚拟机的区别

作为一种轻量级的虚拟化方式,Docker与传统虚拟机相比具有显著的优势。

Docker容器很快,启动和停止可以在秒级实现,比传统虚拟机要快很多;Docker核心解决的问题是利用容器来实现类似VM的功能,从而利用更加节省的硬件资源提供给用户更多的计算资源, 所以 Docker 容器除了运行其中的应用之外,基本不消耗额外的系统资源,从而在保证应用性能的同时,减小系统开销,使得在一台主机上同时运行数千个Docker容器成为可能;Docker操作方便,还可以通过 Dockerfile配置文件支持灵活的自动化创建和部署。表1-1对使用Docker容器技术与传统虚拟化技术的特性进行了比较。

1.1.2 Docker的核心概念

1、镜像

Docker的镜像(image)是创建容器的基础,类似虚拟机的快照.可以理解为是一个面向 Docker 容器引擎的只读模板。比如,一个镜像可以是一个完整的CentOS操作系统环境,称为一个CentOS 镜像:可以是一个安装了MySQL的应用程序,称为一个MySQL镜像,等等。

Docker提供了简单的机制来创建和更新现有的镜像,用户也可以从网上下载已经做好的应用镜 像来直接使用。

2、容器

Docker的容器(Container)是从镜像创建的运行实例。它可以被启动、停止和删除。所创建的每 一个容器都是相互隔离,互不可见,可以保证安全性的平台。可以把容器看作一个简易版的Linux环境,Docker利用容器来运行和隔离应用。

3、仓库

Docker仓库(Repository)是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用 push 命令将它上传到公有仓库(Public)或者私有仓库(Private),这样一来当下次要在另外一台机器上使用这个镜像时,只需要从仓库上拉取下来就可以了。

仓库注册服务器(Registry)是存放仓库的地方,其中包含了多个仓库,每个仓库集中存放某一 类镜像,并且使用不同的标签(Tag)来区分它们。目前最大的公共仓库是Docker Hub,存放了数量庞大的镜像供用户下载使用。

安装Docker的前提操作

能ping通即可

复制代码
[root@node2 ~]# ping www.baidu.com

下载以下插件需官网yum源,把原来的移回来即可 。安装完成后启动Docker并设置为开机自动启动。

复制代码
[root@node3 ~]# yum -y install epel-release


[root@node3 ~]# wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/loacl.repo

查看源

复制代码
[root@node3 yum.repos.d]# yum -y install docker-ce


[root@node3 ~]# docker search centos7   //查询centos7 源



[root@node3 ~]# docker pull ansible/centos7-ansible   //下载centos源

查看镜像信息

复制代码
[root@node3 ~]# docker images

可以用 dockertag 命令来为本地的镜像添加新的标签

复制代码
[root@node3 ~]# docker tag ansible/centos7-ansible:latest centos-01

删除镜像

复制代码
[root@node3 ~]# docker rmi ansible/centos7-ansible:latest 

存出镜像和载入镜像

当需要把一台机器上的镜像迁移到另一台机器上的时候,需要将镜像保存成为本地文件,这一过程叫做存出镜像,可以使用docker save命令进行存出操作。之后就可以复制该文件到其他机器。

复制代码
[root@node3 ~]# docker save -o centos7 centos-01

将存出的镜像从A机器复制到B机器.需要在B机器上使用该镜像.就可以将该导出文件导入到B机器的镜像库中,这一过程叫作载入镜像.

复制代码
[root@node3 ~]# docker load --input centos7 

新建一个容器

复制代码
[root@node3 ~]# docker create -it centos-01 /bin/bash

可以使用docker ps命令来查看所有容器的运行状态。添加-a选项可以列出系统最近一次启动的容器。

启动容器

复制代码
[root@node3 ~]# docker start 8158893a3a3d

查询启动状态

停止容器

复制代码
[root@node3 ~]# docker stop 8158893a3a3d

进入容器

复制代码
[root@node3 ~]# docker exec -it 8158893a3a3d /bin/bash

通过 exit 退出

容器的导出与导入.

用户可以将任何一个 Docker容器从一台机器迁移到另一台机器,在迁移过程中,首先需要将已经创建好的容器导出为文件,可以使用docker export命令实现,无论这个容器是处于运行状态还是停止状态均可导出。导出之后可将导出文件传输到其他机器,通过相应的导入命令实现容器的迁移。

例如,导出8158893a3a3d容器到文件centos7-01

复制代码
[root@node3 ~]# docker export 8158893a3a3d>centos7-01

导出的文件从A机器复制到B机器,之后使用docker import命令导入,成为镜像。命令格式:

复制代码
[root@node3 ~]# cat centos7-01 | docker import - centos7

容器删除

复制代码
[root@node3 ~]# docker stop 8158893a3a3d    //先停止容器

[root@node3 ~]# docker rm 8158893a3a3d   //删除容器
相关推荐
陈希12320 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡20 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
@兽血沸腾21 小时前
Windows系统安装Jenkins部署应用至远程Windows服务器操作指南
运维·服务器·jenkins
且从容.1 天前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道1 天前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
讯捷蓝达1 天前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
且从容.1 天前
ubuntu安装flink
linux·ubuntu·flink
爱和冰阔落1 天前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨1 天前
WSL2的安装与使用
linux·wsl
微小的鱼1 天前
Linux的渲染与显示系统链路
android·java·linux