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中,然后发布到任何流行的机 ...
随机推荐
- 在数据表中添加一个字段的SQL语句怎么写
如果要在数据表中添加一个字段,应该如何表示呢?下面就为您介绍表添加字段的SQL语句的写法,希望可以让您对SQL语句有更深的认识. 通用式: alter table [表名] add [字段名] 字 ...
- cocos中使用VS自动创建工程的方法
为了省事,直接用VS编写了一小段代码,将cocos手动创建工程的命令改用system来执行,免去了手动输入命令的麻烦 其中: -d F:\\cocos2d-x-3.2-projects 是你要存放的工 ...
- C++中的运算符重载注意事项
1.C++中的运算符重载的方式有三种: a.类成员函数重载 b.友元函数重载 c.普通函数重载 注意: a.我们主要使用的方式主要是用:类成员函数和友元函数来实现运算符的重载. b.其实用普通函数理论 ...
- 团队开发---NABC分析
我们的软件初步构想的是版主同学们解决宿舍订桶装水的问题,随着夏季的来临,桶装水的需求量日益加大,而我们订水的过程中常常会遇到这样或那样的问题.再次我只对我们项目中可以直观的看到今日卖家总库存水量和剩余 ...
- 为边框应用图片 border-image
为边框应用图片 border-image 顾名思义就是为边框应用背景图片,它和我们常用的background属性比较相似.例如: background:url(xx.jpg) 10px 20px no ...
- Careercup - Google面试题 - 5680330589601792
2014-05-08 23:18 题目链接 原题: If you have data coming in rapid succession what is the best way of dealin ...
- Codeforces Round #249 (Div. 2) D. Special Grid 枚举
题目链接: http://codeforces.com/contest/435/problem/D D. Special Grid time limit per test:4 secondsmemor ...
- poj 2711 Leapin' Lizards && BZOJ 1066: [SCOI2007]蜥蜴 最大流
题目链接:http://poj.org/problem?id=2711 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1066 Your p ...
- 浅谈KL散度
一.第一种理解 相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergence) ...
- mongo 1067错误
对mongo进行错误的操作导致mongo服务异常关闭,当重启mongo服务时出现1067错误此时在data目录下产生mongod.lock文件,可以讲此文件删除,然后重启就可以了 Please mak ...