Docker(上) Docker简介 Docker安装与启动

「这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战

Docker简介

虚拟化技术

虚拟化技术是一种计算机资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来。虚拟化技术打破了计算机实体结构间的,不可切割的障碍。使用户可以比原本的组态更好的方式,来应用这些资源。

虚拟化技术主要作用:

  • 高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件
  • 软件跨环境迁移问题(代码的水土不服)

在一台主机上实现多个操作系统,关键技术就是硬件的虚拟化。

image.png

什么是Docker

首先,我们先来看几个问题:

1.合作开发的时候,在本机可以跑,别人的电脑跑不起来

这里我们拿Java Web应用程序举例,我们一个Java Web应用程序涉及很多东西,比如JDK、tomcat、spring等等。当这些其中某一项版本不一致的时候,可能就会导致应用程序跑不起来这种情况。Docker则将程序直接打包成镜像,直接运行在容器中即可。

2.服务器自己的程序挂了,结果发现是别人程序出了问题把内存吃完了,自己程序因为内存不够就挂了

这种也是一种比较常见的情况,如果你的程序重要性不是特别高的话,公司基本上不可能让你的程序独享一台服务器的,这时候你的服务器就会跟公司其他人的程序共享一台服务器,所以不可避免地就会受到其他程序的干扰,导致自己的程序出现问题。Docker就很好解决了环境隔离的问题,别人程序不会影响到自己的程序。

3.公司要弄一个活动,可能会有大量的流量进来,公司需要再多部署几十台服务器

在没有Docker的情况下,要在几天内部署几十台服务器,这对运维来说是一件非常折磨人的事,而且每台服务器的环境还不一定一样,就会出现各种问题,最后部署地头皮发麻。用Docker的话,我只需要将程序打包到镜像,你要多少台服务,我就给你跑多少容器,极大地提高了部署效率。

官网地址:www.Docker.com

image.png

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

特点:

  • 标准化交付:Docker将应用打包成标准化单元,用于交付、部署;
  • 轻量级:容器及包含了软件运行所需的所有环境,而且非常轻量级
  • 高可靠:容器化的应用程序,可以在任何Linux环境中始终如一的运行
  • 隔离性:容器化的应用程序,具备隔离性,这样多团队可以共享同一Linux系统资源

容器与虚拟机比较

特性 容器 虚拟机
启动 秒级 分钟级
硬盘使用 一般为MB 一般为GB
性能 接近原生硬件 弱鸡
系统支持量 单机可跑几十个容器 单机几个虚拟OS
运行环境 主要在Linux 主要在window

相同:

  • 容器和虚拟机都是虚拟化技术,具备资源隔离和分配优势

不同:

  • Docker虚拟化的是操作系统,虚拟机虚拟化的是硬件
  • 传统虚拟机可以运行不同的操作系统,Docker主要运行同一类操作系统(Linux)

Docker 基本概念

宿主机:

安装Docker守护进程的Linux服务器,称之为宿主机;

镜像(Image):

Docker 镜像,就相当于是一个 root 文件系统。除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数。

容器(Container):

镜像运行之后的实体,镜像和容器的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

仓库(Repository):

仓库可看成一个镜像控制中心,用来保存镜像。

Docker安装与启动

安装

Docker官方建议在Ubuntu中安装Docker软件。因为Docker基于Ubuntu发布,而且Docker出现问题时,Ubuntu系统版本的一般是先打补丁。很多版本在CentOS中,是不支持更新最新补丁包的。没有好的解决方案。

但是,由于我学习的环境都使用CentOS。因此,这里我将Docker安装到CentOS上。注意,一定安装在CentOS 7.x及以上版本,CentOS6.x的版本中有Bug!

查看电脑上已经已经安装Docker

1
perl复制代码yum list installed | grep docker

安装docker

1
复制代码yum -y install docker

安装后查看docker版本

1
复制代码docker -v

Docker守护进程相关命令

启动docker:

1
sql复制代码systemctl start docker

停止docker:

1
arduino复制代码systemctl stop docker

重启docker:

1
复制代码systemctl restart docker

查看docker状态:

1
lua复制代码systemctl status docker

开机启动:

1
bash复制代码systemctl enable docker

查看docker概要信息

1
复制代码docker info

查看docker帮助文档

1
bash复制代码docker --help

镜像加速的2个方案

默认情况,将从docker hub(hub.docker.com/) 下载docker镜像太慢,一般都会配置镜像加速器

方案一:中科大

中国科学技术大学(ustc)是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc的docker镜像加速器速度很快。ustc docker mirror的优势之一就是不需要注册,是真正的公共服务。

lug.ustc.edu.cn/wiki/mirror…

编辑该文件:

1
bash复制代码vim /etc/docker/daemon.json

在该文件中输入如下内容:

1
2
3
json复制代码{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

方案二:阿里云

如果中科大镜像加载速度很慢,建议配置阿里云镜像加速,这个镜像仓库如果不好使,可以自己从阿里云上申请!速度杠杠的~

1
2
3
json复制代码{
"registry-mirrors": ["https://3ad96kxd.mirror.aliyuncs.com"]
}

必须要注册,每个人分配一个免费的docker镜像加速地址,速度极快

配置完成记得刷新配置

1
2
复制代码sudo systemctl daemon-reload
sudo systemctl restart docker

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%