Docker 实操
---恢复内容开始---
一、简介
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 这个命令
是不是与在宿主机上没有区别呢
- 离开容器(为什么是离开,如果是退出,那么容器就挂了)
Ctrl+p+q
在这里能看到正在运行的容器,容器的ID 使用的镜像,执行的命令,创建时间以及它的名字
退出容器:
直接从容器退出后,docker ps 已经看不到了,那么
启动一个退出的容器
使用宿主机停止容器
删除容器
先停止再删除
面docker rm “ID编号”与docker rm “name”效果一样,此进再用docker ps 去查看容器已经看不到C1了。
总结:通过这几个命令,已经可以运行,连接,查看,删除容器了,如果想真正使用这些容器,这些远远不够;
一向不善于总结,总是想到哪里说到哪里,以上是Docker 的基本命令及操作,通过这些命令我们可以轻易的运行一个容器,并在不使用后销毁,在运行容器的时候你会发现不到很快容器就运行起来了,具体时间看宿主机配置,一般都在1秒左右,和传统虚拟机相比快多啦;
同时,虽然我们已经能够运行容器,但是也存在着问题:端口,服务,存储等等;
Docker 实操的更多相关文章
- Docker安装MySql完整教程、实操
docker:官网 docker:镜像官网: 镜像官网可以所有应用,选择安装环境:会给出安装命令,例如:docker pull redis 默认拉取最新的版本(指定版本:docker p ...
- 从零实操基于WSL2 Docker部署Asp.Net Core项目
前言 平日在公司里都是基于阿里Teambition中的飞流进行Docker部署Api项目或服务,已经习惯了那一套成熟的操作流程,开发和部署确实快捷方便,但是还没在自己的电脑上进行操作过,特别是Wind ...
- SBT实操指南
参考资料:1.英文官方文档2.中文官方文档,内容翻译的不全 SBT是类似maven和gradle的自动构建和包依赖管理工具,SBT是Scala技术体系下的包管理工具,都是Lightbend公司开发的, ...
- ASP.NET Core托管和部署Linux实操演练手册
一.课程介绍 ASP.NET Core 是一种全新的跨平台开源 .NET 框架,能够在 IIS.Nginx.Apache.Docker 上进行托管或在自己的进程中进行自托管. 作为一个.NET Web ...
- 干货 | 京东云应用负载均衡(ALB)多功能实操
应用负载均衡(Application Load Balancer,简称ALB)是京东云自主研发的一款七层负载均衡产品,主要面向HTTP和HTTPS流量的WEB应用程序,提供灵活的功能配置.应用负载均衡 ...
- Istio的流量管理(实操一)(istio 系列三)
Istio的流量管理(实操一)(istio 系列三) 使用官方的Bookinfo应用进行测试.涵盖官方文档Traffic Management章节中的请求路由,故障注入,流量迁移,TCP流量迁移,请求 ...
- harbor安装实操笔记
纸上得来终觉浅,实操一遍吧! 把所有开发的后端服务先在打成镜像,传到私有镜像仓库: 然后在任意的远程机器拉取镜像,然后可采用docker或者docker-compose的方式运行,本节先按照docke ...
- 72 个网络应用安全实操要点,全方位保护 Web 应用的安全
原文地址:Web Application Security Checklist 原文作者:Teo Selenius(已授权) 译者 & 校正:HelloGitHub-小熊熊 & 卤蛋 ...
- 生产环境搭建高可用Harbor(包括恢复演练实操)
生产环境搭建高可用Harbor(包括恢复演练实操) 前言 因资源成本问题,本Harbor高可用架构为最小开销方案,如果资源充足,可以将PG.Redis全部使用使用云厂商集群模式. 同时为了配置简单,并 ...
随机推荐
- HttpServletResponse工具类和HttpServletRequest工具类,前台参数接收方式和后台返回(JSON)数据格式
RequestUtils.java 操作类 package cn.utils; import org.apache.commons.lang3.StringUtils; import org.slf4 ...
- SpringBoot项目存放微信的验证文件,把微信的验证文件放在根目录下
我们做微信开发的时候,有时候会有如下要求 用户在网页授权页同意授权给公众号后,微信会将授权数据传给一个回调页面,回调页面需在此域名下,以确保安全可靠. 下载文件 将以下文件上传至填写域名或路径指向的w ...
- c++之可变参数格式化字符串(c++11可变模板参数)
本文将使用 泛型 实现可变参数. 涉及到的关见函数: std::snprintf 1.一个例子 函数声明及定义 1 // 泛型 2 template <typename... Args> ...
- 【机器学*】k-*邻算法(kNN) 学*笔记
[机器学*]k-*邻算法(kNN) 学*笔记 标签(空格分隔): 机器学* kNN简介 kNN算法是做分类问题的.思想如下: KNN算法的思想总结一下:就是在训练集中数据和标签已知的情况下,输入测试数 ...
- 蓝桥杯练习 Day6 题解
蓝桥杯练习 Day6 题解 A 题意:给你一个等式ax+by = c,问你x,y是否有整数解. 思路:gcd(a,b) = t,如果方程有解,那么\((a/t)*x + (b/t)*y = c/t\) ...
- 1057 - Collecting Gold
1057 - Collecting Gold PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB ...
- 基于 Electron 的 Rubick 2.4k star 啦,同步更新新功能!
为什么要做 Rubick 其实做 Rubick 1.x 的初衷就是解决自己的问题的:特别需要一款支持自定义插件的桌面端应用来简化使用者安装庞大桌面端应用的臃肿.而且涉及到数据安全的问题,插件只能在公司 ...
- 详解Kalman Filter
中心思想 现有: 已知上一刻状态,预测下一刻状态的方法,能得到一个"预测值".(当然这个估计值是有误差的) 某种测量方法,可以测量出系统状态的"测量值".(当然 ...
- <数据结构>XDOJ317.输出完全二叉树的某一层
问题与解答 问题描述 对一棵完全二叉树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY. 输入格式 输入有多组数据. 每组数据第一行输入一个结点数n(1<=n<=1000), ...
- 【Redhat系列linux防火墙工具】firewalld与iptables防火墙工具的激烈碰撞
前言 iptables与firewalld防火墙管理工具在linux发行版Redhat7系列使用较为广泛. UFW则是在linux发行版Ubuntu下进行管理防火墙的一款管理工具. 在选用防火墙工具的 ...