Docker初步认识安装和简单实例
前话
问题
开发网站需要搭建服务器环境,翻墙官网下载软件包,搭建配置nginx,apache,数据库等。官网没有直接可用的运行版本,担心网络流传的非官方发布软件包不安全还得自行编译官方源码安装,忘记步骤或者配置详情还得查看英文文档,总之十分繁琐。
租了个服务器,配置一般七八十块钱一个月,只运行了一个网站或者几个服务就差不多满负荷了,感觉好浪费。
新解决思路
以上两个是比较主要的问题,环境搭建繁琐,通过传统方式搭建服务器由于系统本身导致的性能浪费。
作为开发者最希望看到的是能简单就简单,能省钱就省钱,那么有没有相关技术解决这类问题呢?
当然有,就是Docker了,追溯它的历史嘛它相关概念出现在十几年前,更多详情也请谷歌。
直到2013年Docker正式发行,它就以惊人之势被人广为所知,因为现在市场十分需要它,就跟大数据一样。
因此,阿里云、腾讯云、新浪云、什么云什么云等都推出了Docker容器服务。
下面开始介绍Docker吧。
Docker初步认识
介绍
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。
虚拟机?容器引擎?
下面这样图可以很好的解释:
我们租的云服务器其实就是租了某企业集群运行的一个虚拟机,运行一个系统,我们可以进行系统相关操作。
很多时候我们并不需要系统,我们只想运行一个应用程序提供服务,因此上图右边图示就可以看出来,容器引擎的优势了,我们只是给容器引擎添加了一个容器应用,相关开销就小了许多。
镜像和容器
Docker有许多新概念,详情请自行官网阅读文档,我就只简单说一下两个,镜像和容器。
在Docker中
- 镜像类似编程的类
- 不同软件服务镜像和系统镜像是子类和父类的关系,类似编程的类的继承
- 容器类似编程里的实例。
CentOS系统运行着Docker引擎,Docker引擎要启动一个新的容器首先要有镜像。
镜像就是一个搭建好的一个运行环境的模板,每个镜像本质是依赖底层的系统。比如,因为linux系统内核一样,ubuntu镜像里只是包含一些ubuntu系统特有文件,再链接底层系统内核达到构成一个新的系统。
在ubuntu镜像里增加MySQL服务,它就变成了MySQL镜像,也就是说MySQL镜像是继承了ubuntu镜像。
通过这个模板启动一个容器,这个容器就是镜像的实例。
理解这两个概念,我们可以开始安装Docker和进行简单实例了。
Docker安装并启动简单实例(Linux-CentOS)
安装方法
1.直接yum安装(此方法安装的Docker可能不是最新版)
$ sudo yum install -y docker
2.官网安装方式,传送门
Log into your Ubuntu installation as a user with sudo privileges.
Verify that you have curl installed.
$ which curl
If curl isn’t installed, install it after updating your manager:
$ sudo apt-get update
$ sudo apt-get install curl
Get the latest Docker package.
$ curl -fsSL https://get.docker.com/ | sh
此方法需要等待一段时间(毕竟穷没翻墙),失败就重新几次。
注意,如果不是root用户,我们需要将登陆用户添加到docker用户组,例如:
$ sudo usermod -aG docker pwc
启动Docker容器引擎
启动
$ sudo systemctl start docker
验证docker启动
$ sudo systemctl status docker
输出active说明启动没问题。
查看docker状态
$ sudo docker info
到这里Docker基本安装成功。
简单实例
输入以下命令:
$ sudo docker run hello-world
在输出中可以看到docker先查看是否存在hello-world镜像
若不存在会自动下载,然后创建一个hello-world容器并运行
查看容器运行状态:
$ sudo docker ps
因为hello-world容器是输出一些信息后自动关闭,因此容器列表为空,我无法讲解其他一些知识,请期待下一章节。
查看镜像列表:
$ sudo docker images
可以看到我们刚才自动下载了hello-world镜像
查看其他Docker命令:
$ sudo docker -h
Docker初步认识安装和简单实例的更多相关文章
- Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例
目录 [TOC] 1.环境准备 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0. ...
- [转载] Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例
1.环境准备 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0.33 c4 -&g ...
- Django学习笔记(一):环境安装与简单实例
Django学习笔记(一):环境安装与简单实例 通过本文章实现: Django在Windows中的环境安装 Django项目的建立并编写简单的网页,显示欢迎语与当前时间 一.环境安装 结合版本兼容性等 ...
- Docker的下载安装以及简单使用
Docker的简介 Docker是一个基于GO语言开发的应用容器,它是一款适合运维人员和后段开发人员学习的开源容器引擎.Docker容器可以让开发的应用或者依赖包存储其中,可以运行在任何的Linux ...
- MinGW 安装与简单实例
MinGW的下载 链接: https://pan.baidu.com/s/1JiZoyFHUWoeaxCQcUXCKgg 密码: myh3 MinGW的安装 基本上都是按提示的点击下一步操作 接下来修 ...
- Docker入门之安装与简单使用操作
1.docker安装 #1.检查内核版本,必须是3.10及以上 uname -r #2.安装 yum -y install docker 2.docker简单使用 #1.启动docker system ...
- PyQt5 安装及简单实例 -- 标签设置
- 1 - PyQt5安装,鉴于pip工具,安装其实很简单, 如下:(最好将pip索引配置成国内镜像,速度比默认的快得多) pip3 isntall PyQt5 - 2 - 利用Pycha ...
- centos mongodb安装及简单实例
1.创建目录并设置写权限的操作如下: $mkdir -p /data/db (创建目录和必要的父目录,若父目录不存在则先创建父目录再创建子目录) $ chown -R $usergroup:$user ...
- Docker windows下安装并搭建Nodejs的webapp
一.关于Docker 什么是Docker?Docker 采用go语言编写,是一个开源的应用容器引擎.让开发者可以快速打包他们的应用以及依赖包到一个封装的可移植的容器Image中,然后发布到任何流行的机 ...
随机推荐
- 团队开发之《极速蜗牛》NABC分析
一.简介 项目名称:极速蜗牛 特点:操作简单,视觉与听觉配合,让用户有最完美的体验. 二.NABC分析 N(need):在人们无时无刻离不开手机的今天,难免有无聊的时候,此刻一款操作简单又能令人们动脑 ...
- Ztree的初步使用--checkbox--指定目录下搜索子节点
这里记录一下zTree的check的使用 首先 <%@ Page Language="C#" AutoEventWireup="true" CodeBeh ...
- MVC缓存技术
一.MVC缓存简介 缓存是将信息(数据或页面)放在内存中以避免频繁的数据库存储或执行整个页面的生命周期,直到缓存的信息过期或依赖变更才再次从数据库中读取数据或重新执行页面的生命周期.在系统优化过程中, ...
- Android基础整理之四大组件Activity
最近准备系统的重新整理复习一下Android的各方面的知识,本着知识分享的原则,我就把梳理过程中一些东西给记录下来,权当一个学习笔记吧. 下面步入正题..... 什么是Activity Activit ...
- Log4j2 配置笔记(Eclipse+maven+SpringMVC)
Log4j2相关介绍可以百度看下,这里只注重配置Log4j2 能够马上跑起来: 1.pom.xml文件中添加Log4j2的相关Maven配置信息 <!-- log4j2 --> <d ...
- line-height:150%和line-height:1.5的区别
base都是font-size,不管是继承的,还是自身的. "%":为继承父元素的距离 "无单位":计算各自的距离. 看demo1: 样式 body{ font ...
- NYOJ-73 比大小 AC 分类: NYOJ 2014-01-17 21:29 195人阅读 评论(0) 收藏
典型的大数题目,这只是大数的比较,到时还有大数加减乘除,更加还有乘方,对于大数,一般用数组或者字符串,因为其他的结构类型一般都没有那么大 的范围!! 这道题目需要你仔细回想怎么比较俩个数字的大小,考虑 ...
- 阻止浏览器关闭 区分刷新和关闭 自试IE可用
window.onbeforeunload = onbeforeunload_handler; function onbeforeunload_handler(){ if(event.clientX& ...
- phonegap/cordova常用命令
创建项目 cordova create foldername com.wps.test projectName cd foldername 基本设备信息 设备 API: cordova plugin ...
- [工作积累] OpenGL ES3.0: glInvalidateFramebuffer
https://www.khronos.org/opengles/sdk/docs/man3/html/glInvalidateFramebuffer.xhtml 这个在GLES2.0上只有Exten ...