Docker介绍及常用命令

1、Docker介绍

最近几年最火的技术是什么,大概率是人工智能。但最近几年改变软件行业的技术是什么?那一定是Docker。Docker到底解决了什么问题呢?

在日常的产品、开发、测试、运维这条流程上,最麻烦的不是定需求或是开发需求或是测试,而是环境配置,比如测试环境和生产环境,用了两套不同的机器,每个环境上的每台机器都需要安装各种库和组件,只有它们都安装好、安装正确,开发的软件才能在环境上运行起来。比如我们要在生产环境部署JAVA应用,生产环境的机器就必须先安装JDK,可能还需要引入各种依赖,可能还需要配置各种环境变量,现在一般公司都有集群,每台机器都要安装同样的环境,这样部署一套环境费时又费力,还极大可能出错。大家作为测试,是不是经常会听到开发跟你解释问题的时候,说一句“我本地是可以的呀”。其实就是我们在测试环境发现的BUG,开发本地测试了没有问题,那很有可能是环境的问题。一套环境的部署是如此的麻烦,那如何能从根本上解决这个问题呢?我们安装软件的时候,如果把原始环境直接全部复制过来不就可以了吗?

虚拟机就是带环境安装的一种解决方法。上一章节我们安装了centos虚拟机,其实就是在一种操作系统里面运行另一种操作系统,我们是在windows上安装了centos这个linux系统。其实windows本身是对这个安装的虚拟机没有感知的,因为对于windows来说,我们安装的centos也就是一些文件而已。虚拟机一定程度上解决了直接把原始环境复制过来的问题,但虚拟机的方案有几个明显的缺点

  • 资源占用较多

我们上一章节安装虚拟机的时候,需要配置虚拟机占用的内存和CPU以及硬盘,这是必须占用的,哪怕我们使用虚拟机只是编写一个excel,那它还是实际占用了很大的固定资源。

  • 启动速度慢

因为是操作系统,所以启动就跟开机一样,需要一段时间的等待,等待的时间由配置的高低决定。

  • 操作步骤较多

虚拟机是一个操作系统,我们无法跳过一些步骤,比如开机、登录等等。

后来Linux发展出了一种虚拟化技术,就是LXC,也就是Linux容器。Linux容器不是模拟一个完整的操作系统,而是对进程进行隔离。也就是容器里的软件是跟本身Linux机器是隔离的。

这个技术相比于虚拟机,那优势就很大了

  • 资源占用较少

容器不需要一整个操作系统的资源,它只占用它需要用到的资源,从而不占用其他的它不使用的资源。并且,多个容器之间是可以共享资源的。

  • 启动速度快

因为容器是底层系统的一个进程,所以不需要像虚拟机一样的开机过程,相当于启动本机的一个进程,这样速度就快很多。

  • 体积很小

容器只包含它自己用到的组件,不是一个完整的操作系统,所以体积很小

我们可以把容器理解为轻量级的虚拟机,容器对资源的占用更小,成本更低。

Docker是对Linux容器的一种封装,并提供了简单的接口。它也是目前最流行的Linux容器解决方法。Docker将应用程序以及它的依赖打包在一个文件中(也就是镜像),当运行这个文件时,就会生成一个容器,程序在容器中运行,跟在物理机上运行一样。Docker提供的接口也相当简单,我们可以很方便的创建并使用容器,可以把我们的应用放在容器中,容器也可以进行版本的管理、复制、分享以及修改。

Docker主要有三大用途

  • 提供一次性的环境

比如我们做自动化测试时,环境会有一个基础的数据,比如数据库使用的是Mysql,这个Mysql是一个容器,我们跑完自动化测试后,会对环境的数据做一定的修改。如果我们再想跑一遍,继续使用跑自动化测试之前的环境的数据,那么我们可以直接删除容器,重新根据镜像启动一次容器,就是最基础的数据了。

  • 提供云服务的弹性伸缩

因为Docker容器可以随开随关,特别适合动态扩容和缩容。

  • 组件微服务架构

在一台机器上可以启动多个容器,相当于模拟出了微服务架构

Docker目前有两个版本,一个是社区版(Docker CE),一个是企业版(Docker EE),需要付费。一般用社区版就够了。

2 Centos7上安装Docker

我们在centos上安装一下Docker

我们直接使用国内daocloud的一键安装命令

curl -sSL https://get.daocloud.io/docker | sh

安装好以后,我们来启动docker

systemctl start docker

3 Image文件

Docker把应用程序以及依赖打包到image文件中,我们通过image文件就能生成docker容器。image文件可以看作是容器的模板,我们跟虚拟机做对比,image文件可以理解成虚拟机的.iso文件,我们创建好的centos7系统虚拟机,可以理解成容器,也就是我们可以根据image文件,生成多个同时运行的容器。

4 Docker Hub

image文件制作好以后也可以传到网上的仓库,Docker官方的仓库是Docker Hub,它是最重要也是最常用的image仓库。我们可以在Docker hub中找到想要的软件的镜像,可以直接拉取下来使用。一般公司也会搭建自己的本地docker仓库,或是使用云服务商的镜像仓库的服务。

5 Docker常用命令

docker images 查看本地镜像
docker search centos 搜索镜像
docker pull centos:7 下载centos7镜像
docker tag centos:7 mycentos:1 修改本地镜像的名字
docker rmi centos:7 删除本地镜像
docker ps -a 查看所有容器,包括已经停止的容器
docker ps 查看正在运行的容器
docker stop 容器ID 停止容器
docker start 容器ID/容器名称 启动容器
docker restart 容器ID/容器名称 重启容器
docker rm -f 容器ID/容器名称 强制删除容器
docker exec -it 容器ID/容器名称 /bin/bash 进入容器
docker logs 容器ID 查看容器日志
docker run -itd —name=指定的容器名称 镜像ID 创建容器

猜你喜欢

转载自blog.csdn.net/qq_28807911/article/details/131521992