Docker入门

1. Docker是什么?

1、Docker是一个由GO语言写的程序运行的“容器”(Linux containers, LXCs),
2、它是完整的一套容器管理系统
3、Docker提供了一组命令,让用户更加方便直接地使用容器技术,而无需要过多关心底层内核技术

简单来说: docker是一个用来装应用的容器,就像杯子可以装水,笔筒可以放笔,书包可以放书,可以把hello word放在docker中,可以把网站放入docker中,可以把任何想得到的程序放在docker中。
注释1: 一个容器就相当于一个虚拟机
注释2:docker用途,目前有三大类
(1) 提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境
(2) 提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容
(3) 组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构

2. Docker与虚拟化

传统来看,虚拟化既可以通过硬件模拟来实现,也可以通过操作系统软件来实现 而容器技术则更为优雅,
它充分利用了操作系统本身已有的机制和特性,可以实现远超传统虚拟机的轻量级虚拟化 因此,有人甚至把它称为
“新一代的虚拟化”技术,并将基于容器打造的云平台亲切地称为“容器云”毫无疑问,
Docker 正是众多容器技术中的佼佼者,是容器技术发展过程中耀眼的一抹亮色
Docker 和常见的虚拟机方式的不同之处
在这里插入图片描述

3. Docker虚拟化的好处

好处一:应用部署方便

举个简单的例子

假设用户试图基于最常见的 LAMP (Linux+Apache+MySQL+PHP )组
合来构建网站 按照传统的做法,首先需要安装 Apache MySQL PHP 以及它们各自运
行所依赖的环境;之后分别对它们进行配置(包括创建合适的用户、配置参数等);经过大
量的操作后,还需要进行功能测试,看是否工作正常;如果不正常,则进行调试追踪,意
味着更多的时间代价和不可控的风险 可以想象,如果应用数目变多,事情会变得更加难以处理

更为可怕的是, 旦需要服务器迁移(例如从阿里云迁移到腾讯云),往往需要对每个
应用都进行重新部署和调试 这些琐碎而无趣的“体力活”,极大地降低了用户的工作效率
究其根源,是这些应用直接运行在底层操作系统上,无法保证同一份应用在不同的环境中行为一致

Docker 提供了一种更为聪明的方式,通过容器来打包应用、解藕应用和运行平台
这意味着迁移的时候,只需要在新的服务器上启动需要的容器就可以了,无论新旧服务器
是否是同一类型的平台 这无疑将帮助我们节约大量的宝贵时间,并降低部署过程出现问题的风险

好处二:服务器同等配置,性能更优,利用率更高

让我们假设你有一个容器镜像(image)容量是1GB,如果你想用一个完整的虚拟机来装载,
你得需要容量的大小是1GB乘上你需要虚拟机的数量。但使用Linux容器虚拟化技术(LXC)和AuFS,你可以共享1GB容量,
如果你需要1000个容器,假设他们都运行在同样的系统影像上,你仍然可以用稍微比1GB多一点的空间来给容器系统
因此,借助经过全面调优的容器系统,你就可以在同一硬件上拥有数量比使用Xen虚拟机或KVM虚拟机多出四到六倍的服务器应用实例。

实际案例:以springcloud微服务为例
7个服务-7台linux服务器
7个服务-1台linux服务器-docker-7个镜像

4. 核心概念

Docker大部分的操作都围绕着它的三大核心概念: 镜像、容器和仓库

4.1.镜像

 Docker 镜像类似于虚拟机镜像,可以将它理解为一个只读的模板
 例如,一个镜像可以包含一个基本的操作系统环境(例如:CentOS7),可以把它称为一个 CentOS7 镜像

4.2.容器

 1.Docker 容器类似于一个轻量级的沙箱, Docker利用容器来运行和隔离应用  
 2.容器是从镜像创建的应用运行实例 它可以启动、开始、停止 删除,而这些容器都是彼此相互隔离、互不可见的
 3.可以把容器看作一个简易版的 Linux 系统环境(包括 root 用户权限、进程空间、用户空间和网络空间等)
   以及运行在其中的应用程序打包而成的盒子

4.3.仓库

 Docker 仓库类似于代码仓库,是 Docker 集中存放镜像文件的场所。

5. CentOS7用阿里云Docker Yum源在线安装Docker

注意:Docker支持运行CentOS版本:CentOS 7.X

5.1.内核版本信息检查

uname -r

5.2 卸载可能存在的旧版本

yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine

注意:旧版本的docker叫做docker或者docker-engine,如果有安装,先卸载其以及其依赖,新版本的docker叫做docker-ce
docker-ce(社区版,免费)
docker-ee(专业版,收费)

5.3 安装必要的系统工具

yum install -y yum-utils device-mapper-persistent-data lvm2

注意:安装依赖软件(yum-utils提供yum-config-manager包,用来管理yum配置文件;lv2和device-mapper-persistent-data为dockerdevicemapper存储设备的必须依赖)

5.4 配置阿里云Docker Yum源(从原站下载速度太慢了,换阿里云下载贼快)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

5.5 更新yum缓存

yum makecache fast

5.6 安装docker-CE

yum -y install docker-ce

注意:
1)默认安装的是最新版本的稳定版
2)查看版本列表请使用如下命令:

yum list docker-ce --showduplicates | sort -r

3)如果要安装特定版本的docker-CE请使用如下命令格式:

yum install docker-ce-<VERSION STRING>
//例如:yum install docker-ce-18.03.0.ce

5.7 设置docker开机启动

systemctl enable docker    
//每次linux系统重启之后,docker又要重新手动启动,太麻烦,可设置docker自动启动

5.8 启停服务

systemctl start docker //启动

其他相关命令

systemctl start docker    //启动
systemctl stop docker     //停止
systemclt restart docker  //重启
systemctl status docker   //查看运行状态  

注意:查看docker的版本,第二个命令是详细查看

docker --version 或 docker info

6. 镜像

Docker 运行容器前需要本地存在对应的镜像, 如果镜像不存在, Docker 会尝试先从默认镜像仓库下载
(默认使用 Docker Hub 公共注册服务器中的仓库), 用户也可以通过配置,使用自定义的镜像仓库

镜像相关操作:

6.1 配置加速器

国内从Docker Hub下载镜像速度很慢,我们可以配置阿里云专属加速器来解决

6.1.1 浏览器访问并登陆阿里云(淘宝或支付宝帐号登陆也可以)

https://www.aliyun.com/

6.1.2 登陆后,进入阿里云“控制台”,搜索“容器镜像服务”,然后点击菜单:“镜像中心”–>“镜像加速器”

   最后,将容器右边的“加速器地址”复制下来即可

6.1.3 设置容器镜像服务的密码(可选)

   容器镜像服务(Container Registry)提供多地域镜像托管能力,稳定的国内外镜像构建服务,便捷的镜像授权功能,
   方便用户进行镜像全生命周期管理。在开通流程中,您需要设置独立于账号密码的Registry登录密码,便于镜像的上传、下载。
   注1:此步骤为可选,如果需要使用阿里云来管理你的镜像 ,此步骤必须设置

6.1.4 修改docker相关配置

vi /etc/docker/daemon.json

添加下面内容(地址替换成上面的加速器地址):

{
	"registry-mirrors":["你的阿里云专属加速器地址"]
}
//例如:
{"registry-mirrors":["https://oyi1xr7k.mirror.aliyuncs.com"]}

6.1.5 重新加载daemon

 systemctl daemon-reload

6.1.6 重启docker

systemctl restart docker 

6.2 搜索镜像

$ docker search 镜像名称
//例如:docker search mysql

6.3 下载镜像

docker pull 镜像名
例如, 获取一个 centos 系统的基础镜像可以使用如下的命令
## 未指定版本一般会使用latest(最新的)版本
docker pull centos //我们执行这条语句
## 或者直接指定版本
docker pull centos:版本号

6.4 查看宿主机上的镜像

docker images

6.5 删除镜像

docker rmi 镜像ID/标签
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

借我丹青妙笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值