---恢复内容开始---

一、简介

Linux容器作为一类操作系统层面的虚拟化技术成果,旨在立足于单一Linux主机交付多套隔离性Linux环境。与虚拟机不同,容器系统并不需要运行特定的访客操作系统。相反,容器共享同一套主机操作系统内核,同时利用访客操作系统的系统库以交付必要的系统功能。由于无需借助于专门的操作系统,因此容器在启动速度上要远远优于虚拟机。

上图是经典对比图,左图是传统的虚拟化,属于平台虚拟化(半虚拟化,硬件辅助虚拟化,软件全虚拟化)每个虚拟机运行在自己独立完整的操作系统;右图是容器,与虚拟机不同,容器系统并不需要运行特定的访客操作系统;

容器能够利用Namespaces、SELinux配置、chroot以及CGroups等Linux内核功能,从而交付一套类似于虚拟机的隔离性环境。Linux安全模块能够确保来自容器的主机设备与内核访问行为受到妥善管理,从而避免入侵活动的发生。除此之外,容器还能够通过其主机操作系统运行多种不同Linux发行版——只要各类操作系统拥有同样的底层CPU架构要求;

那么Docker 是开源基于LXC的高级容器引擎,基于go 语言开源,使用内核的cgroups(文件系统隔离)及namespace(一种命名方法);请记住Docker 是容器引擎,平常我们一般都说Docker 是容器,但是其本质别搞混了;

关于Docker及容器的介绍远远不止这些。。。。。。,回到我们的主题,是Docker 入门,通过本文,将学会基本的容器操作及环境配置;

二、安装及运行Docker(CentOS7.3):

1.安装:

[root@minion ~]# yum -y install docker

2.运行:

安装完成以后我们可以使用docker 这个命令,同时在上图中我们看到以下信息:

此时的Docker 是客户端,有版本,API版本,go 版本等信息,最重要的是最后的提示,此时的Docker Daemon 并未运行;

将Docker Daemon 运行后再次查看,可以查询到Server 的信息

3.帮助

4.查看本地仓库镜像

5.在dockerhub 上搜索镜像

6.拉取共享镜像

在拉取前需要更改/etc/docker/daemon.json(国内访问dockerhub速度你懂得,在这里使用了ustc的镜像加速)

{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]}

7.再次查看本地仓库:

哈哈,总算是把准备工作搞定了,其实准备工作里有很多细节性的东西,比如docker images 里有tag 标签,我们是可以指定标签名字的,如果使用Docker 私有仓库将会接触很多TAG,可以指定上传镜像TAG及下载镜像TAG;同样我们也可以定制自己的镜像,将一些常用服务做成镜像,那么在下次使用时就再也不用安装及配置啦;Docker 镜像是分层的,类似我们小时候用的字帖;

是的,容器运行需要:仓库、镜像、容器引擎

三、运行容器

1.运行一个名字为c1 的窗口,并获取一个shell

此时我们进入C1 容器的shell 在这里可以执行一些基本命令,

我们装一下ip 这个命令

---恢复内容结束---

一、简介

Linux容器作为一类操作系统层面的虚拟化技术成果,旨在立足于单一Linux主机交付多套隔离性Linux环境。与虚拟机不同,容器系统并不需要运行特定的访客操作系统。相反,容器共享同一套主机操作系统内核,同时利用访客操作系统的系统库以交付必要的系统功能。由于无需借助于专门的操作系统,因此容器在启动速度上要远远优于虚拟机。

上图是经典对比图,左图是传统的虚拟化,属于平台虚拟化(半虚拟化,硬件辅助虚拟化,软件全虚拟化)每个虚拟机运行在自己独立完整的操作系统;右图是容器,与虚拟机不同,容器系统并不需要运行特定的访客操作系统;

容器能够利用Namespaces、SELinux配置、chroot以及CGroups等Linux内核功能,从而交付一套类似于虚拟机的隔离性环境。Linux安全模块能够确保来自容器的主机设备与内核访问行为受到妥善管理,从而避免入侵活动的发生。除此之外,容器还能够通过其主机操作系统运行多种不同Linux发行版——只要各类操作系统拥有同样的底层CPU架构要求;

那么Docker 是开源基于LXC的高级容器引擎,基于go 语言开源,使用内核的cgroups(文件系统隔离)及namespace(一种命名方法);请记住Docker 是容器引擎,平常我们一般都说Docker 是容器,但是其本质别搞混了;

关于Docker及容器的介绍远远不止这些。。。。。。,回到我们的主题,是Docker 入门,通过本文,将学会基本的容器操作及环境配置;

二、安装及运行Docker(CentOS7.3):

1.安装:

[root@minion ~]# yum -y install docker

2.运行:

安装完成以后我们可以使用docker 这个命令,同时在上图中我们看到以下信息:

此时的Docker 是客户端,有版本,API版本,go 版本等信息,最重要的是最后的提示,此时的Docker Daemon 并未运行;

将Docker Daemon 运行后再次查看,可以查询到Server 的信息

3.帮助

4.查看本地仓库镜像

5.在dockerhub 上搜索镜像

6.拉取共享镜像

在拉取前需要更改/etc/docker/daemon.json(国内访问dockerhub速度你懂得,在这里使用了ustc的镜像加速)

{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]}

7.再次查看本地仓库:

哈哈,总算是把准备工作搞定了,其实准备工作里有很多细节性的东西,比如docker images 里有tag 标签,我们是可以指定标签名字的,如果使用Docker 私有仓库将会接触很多TAG,可以指定上传镜像TAG及下载镜像TAG;同样我们也可以定制自己的镜像,将一些常用服务做成镜像,那么在下次使用时就再也不用安装及配置啦;Docker 镜像是分层的,类似我们小时候用的字帖;

是的,容器运行需要:仓库、镜像、容器引擎

三、运行容器

1.运行一个名字为c1 的窗口,并获取一个shell

此时我们进入C1 容器的shell 在这里可以执行一些基本命令,

我们装一下ip 这个命令

是不是与在宿主机上没有区别呢

  1. 离开容器(为什么是离开,如果是退出,那么容器就挂了)

Ctrl+p+q

在这里能看到正在运行的容器,容器的ID 使用的镜像,执行的命令,创建时间以及它的名字

退出容器:

直接从容器退出后,docker ps 已经看不到了,那么

启动一个退出的容器

使用宿主机停止容器

删除容器

先停止再删除

面docker rm “ID编号”与docker rm “name”效果一样,此进再用docker ps 去查看容器已经看不到C1了。

总结:通过这几个命令,已经可以运行,连接,查看,删除容器了,如果想真正使用这些容器,这些远远不够;

一向不善于总结,总是想到哪里说到哪里,以上是Docker 的基本命令及操作,通过这些命令我们可以轻易的运行一个容器,并在不使用后销毁,在运行容器的时候你会发现不到很快容器就运行起来了,具体时间看宿主机配置,一般都在1秒左右,和传统虚拟机相比快多啦;

同时,虽然我们已经能够运行容器,但是也存在着问题:端口,服务,存储等等;

Docker 实操的更多相关文章

  1. Docker安装MySql完整教程、实操

    docker:官网 docker:镜像官网:        镜像官网可以所有应用,选择安装环境:会给出安装命令,例如:docker pull redis 默认拉取最新的版本(指定版本:docker p ...

  2. 从零实操基于WSL2 Docker部署Asp.Net Core项目

    前言 平日在公司里都是基于阿里Teambition中的飞流进行Docker部署Api项目或服务,已经习惯了那一套成熟的操作流程,开发和部署确实快捷方便,但是还没在自己的电脑上进行操作过,特别是Wind ...

  3. SBT实操指南

    参考资料:1.英文官方文档2.中文官方文档,内容翻译的不全 SBT是类似maven和gradle的自动构建和包依赖管理工具,SBT是Scala技术体系下的包管理工具,都是Lightbend公司开发的, ...

  4. ASP.NET Core托管和部署Linux实操演练手册

    一.课程介绍 ASP.NET Core 是一种全新的跨平台开源 .NET 框架,能够在 IIS.Nginx.Apache.Docker 上进行托管或在自己的进程中进行自托管. 作为一个.NET Web ...

  5. 干货 | 京东云应用负载均衡(ALB)多功能实操

    应用负载均衡(Application Load Balancer,简称ALB)是京东云自主研发的一款七层负载均衡产品,主要面向HTTP和HTTPS流量的WEB应用程序,提供灵活的功能配置.应用负载均衡 ...

  6. Istio的流量管理(实操一)(istio 系列三)

    Istio的流量管理(实操一)(istio 系列三) 使用官方的Bookinfo应用进行测试.涵盖官方文档Traffic Management章节中的请求路由,故障注入,流量迁移,TCP流量迁移,请求 ...

  7. harbor安装实操笔记

    纸上得来终觉浅,实操一遍吧! 把所有开发的后端服务先在打成镜像,传到私有镜像仓库: 然后在任意的远程机器拉取镜像,然后可采用docker或者docker-compose的方式运行,本节先按照docke ...

  8. 72 个网络应用安全实操要点,全方位保护 Web 应用的安全

    原文地址:Web Application Security Checklist 原文作者:Teo Selenius(已授权) 译者 & 校正:HelloGitHub-小熊熊 & 卤蛋 ...

  9. 生产环境搭建高可用Harbor(包括恢复演练实操)

    生产环境搭建高可用Harbor(包括恢复演练实操) 前言 因资源成本问题,本Harbor高可用架构为最小开销方案,如果资源充足,可以将PG.Redis全部使用使用云厂商集群模式. 同时为了配置简单,并 ...

随机推荐

  1. Learning to Sample

    此处主要提出几个疑问和想法: 疑问: 为什么需要这个匹配过程?虽然G可能不是P的子集,但是为什么一定需要他是子集呢? 如果一定要匹配的话,匹配过程是没法反向传播的,所以只可以在推理阶段使用,那么这个推 ...

  2. JAVAWEB导出word文档,遍历表格数据,导出图片

    这是写的另一个导出word方法:https://www.cnblogs.com/pxblog/p/12790904.html 本次使用的是easypoi框架 官方教程:https://opensour ...

  3. JAVA使用itext根据模板生成PDF文档

    1.制作PDF模板 网址打开:https://www.pdfescape.com/open/ 我们这里先在线上把基础的内容用word文档做好,然后转成PDF模板,直接上传到网站上,这样方便点 假设我们 ...

  4. 【九度OJ】题目1180:对称矩阵 解题报告

    [九度OJ]题目1180:对称矩阵 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1180 题目描述: 输入一个N维矩阵,判断是否对称 ...

  5. MySQL中写操作

    具体到操作流程: 当执行某个写操作的 SQL 时,引擎将这行数据更新到内存的同时把对应的操作记录到 redo log 里面,然后处于 prepare 状态.并把完成信息告知给执行器. 执行器生成对应操 ...

  6. C9软件工程非一线城市面试经验

    本人C9软件工程毕业,由于家境一般,不想去一线城市面对天价房价,所以面的都不是互联网大厂. 人生第一面: 2021.11.29 五某汽车 软件工程岗面试 提前3天发了短信,然后拉了一个面试微信群 1. ...

  7. 第四十九个知识点:描述在IPsec和TLS后的基本想法

    第四十九个知识点:描述在IPsec和TLS后的基本想法 网络安全协议(Internet Protocol Security,IPsec)和安全传输层协议(Transport Layer Securit ...

  8. SNGAN

    目录 概 主要内容 Miyato T., Kataoka T., Koyama M & Yoshida Y. SPECTRAL NORMALIZATION FOR GENERATIVE ADV ...

  9. 初识JavaScript变量

    一.什么是变量? 变量即变化的量,在JS中变量是松散类型的,可以用来保存任何数据类型.把数据取个名字,放在内存中,就称之为变量! 通过变量名可以取到对应数据 二.为什么使用变量? 程序:代码的集合,一 ...

  10. [error]Flask Address already in use

    在Python的Flask框架下Address already in use [地址已在使用中] 出现这种错误提示, 说明你已经有一个流程绑定到默认端口(5000).如果您之前已经运行过相同的模块,则 ...