Docker(1)----初步认识

0.前言

  1. 为什么会出现docker呢

    我们在做项目的时候,会不会出现这样子的一种情况,就是这个项目在我的电脑上可以运行,在他的电脑上却不能运行,环境配置是真的麻烦,果然环境配置好,就成功了80%,我相信大多数人都有这样子的体会。再比如我们做服务器集群的时候,服务器A要配置tomcat+mysql+redis等等,服务器B也要配置,服务器C也要配置…一台一台配置是一件麻烦的时候,如果过程中不小心配错了,项目就运行不起来等等,就很烦躁。

    因此,我们提出一个问题:为什么我把项目copy给别人的时候,不能直接带上我的运行环境呢?

  2. 所以,docker就是为了解决这个问题诞生的,它不仅仅可以打包我们的程序,还可以打包我们的运行环境。

    即 docker 打包 我的程序 + 我此时的运行环境 成镜像。

    直接copy给别人的时候,由于自带环境,可以直接启动容器,直接运行成功,开发,测试环境都是高度一致的。

1.概述

  1. Docker是一个开源的应用容器引擎;是一个轻量级容器技术;

  2. Docker支持将软件编译成一个镜像然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像

  3. 运行中的这个镜像称为容器,容器启动是非常快速的。

2.作用

  1. 应用更快速的交付和部署

    在传统的开发环境中,当开发完成开发的时候,需要交给运维人员进行测试,就需要写一堆帮助文档,比如如何安装程序,如何配置才能运行等等,十分的麻烦。

    而docker则直接将程序加运行时的环境打包镜像发布,一键运行,直接测试。

  2. 更加方便的升级和扩缩容

    因为docker打包是 加运行环境的,因此直接交给其他服务器,得到镜像就可以马上运行,部署更加方便。

  3. 更加简单的系统运维

    在容器化之后,开发,测试环境都是高度一致的。

  4. 更加高效的对计算机资源利用

    docker是内核级别的虚拟化,可以再一个物理机上可以运行很多的容器实例。

3. docker和虚拟机技术的不同

我们做redis集群或者mysq集群的时候,总是开几个虚拟机,你会发现开3 -4个虚拟机,电脑就非常卡,内存占90%等等。这是因为:

  1. 虚拟机:在window中装一个Vmware,通过这个软件我们可以虚拟出来一台或多态电脑运行一个完整的操作系统,然后在这个系统上安装和运行软件。你看,都虚拟出完整的操作系统了,能不卡吗?

  2. 容器化技术不是模拟一个完整的操作系统

    容器内的应用直接运行在宿主机的上,容器是没有自己的内核的,也没有虚拟我们的硬件,所以就轻便了

    每个容器间是相互隔离,每个容器内都有一个属于自己的文件系统,互不影响

总结:docker利用的是宿主机的内核,虚拟机是需要全新的内核。当新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导,虚拟机时加载Guest OS,分钟级别的,docker是利用宿主机的操作系统,省略复杂过程。

4.核心的概念

  1. 主机(Host)安装了Docker程序的机器(Docker直接安装在操作系统之上);

  2. 客户端(Client)连接docker主机进行操作;

  3. 仓库(Registry)用来保存各种打包好的软件镜像;

  4. 镜像(Images)软件打包好的镜像;放在docker仓库中;

  5. 容器(Container):镜像启动后的实例称为一个容器;容器是独立运行的一个或一组应用

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JEeubsPF-1606974546628)(G:\BaiduNetdiskDownload\springboot核心篇+整合篇-尚硅谷\01尚硅谷SpringBoot核心技术篇\Spring Boot 笔记+课件(1)]\Spring Boot 笔记+课件\images\搜狗截图20180303165113.png)

5.安装Docker(Linux)

1. 环境准备

#系统内核是要求 3.10以上 通过下面的命令来查看自己的内核版本
root@ubuntu:/home/mylinux# uname -r
4.15.0-123-generic

2.查看并使用帮助文档

  1. 我们可以使用docker的帮助文档来安装,下面是地址,我用的是ubuntu,因此下面是以ubuntu来讲解的,其他可以查看帮助文档来安装。地址:docker:https://docs.docker.com/get-docker/

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-La3FBTJb-1606974841044)(C:\Users\jin\AppData\Roaming\Typora\typora-user-images\1606964605184.png)]

  2. 选择ubuntu的教程

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZUgOTC8K-1606974841047)(C:\Users\jin\AppData\Roaming\Typora\typora-user-images\1606964692348.png)]

3.安装过程(Ubuntu版)

下面则是按照文档步骤写的安装步骤

# 1.卸载旧的版本
	sudo apt-get remove docker docker-engine docker.io containerd runc

# 2.需要的安装包
    sudo apt-get update  #这个是更新软件包
#这是需要的其他安装包
    sudo apt-get install \   
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg-agent \
        software-properties-common 
    
# 3.设计镜像的仓库
# 本人没有修改阿里云,一样很快,因此其实这一步如果不需要修改阿里云,就可以直接跳过。
# 这是系统默认的镜像仓库(国外),如果需要修改成阿里云的,按下面修改
# 可以不用执行下面命令
    $ sudo add-apt-repository \
       "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
       $(lsb_release -cs) \
       stable"
   
# 修改为阿里云
    $ sudo add-apt-repository \
       "deb [arch=amd64] 阿里云的地址 \
       $(lsb_release -cs) \
       stable"

# 4.安装docker
	sudo apt-get install docker-ce docker-ce-cli containerd.io
	// 2024年2月7日修改,发现上述的命令似乎无法执行了,改下面这个:
	 sudo apt-get update && sudo apt-get install docker.io -y

# 5.启动
	systemctl start docker / service docker start
	
# 6.查看是否安装成功
root@ubuntu:/home/mylinux# docker version
Client: Docker Engine - Community
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46d9d
 Built:             Wed Sep 16 17:02:59 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.13
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       4484c46d9d
  Built:            Wed Sep 16 17:01:30 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.3.7
  GitCommit:        8fba4e9a7d01810a393d5d25a3621dc101981175
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
# 7.使用docker run hello-world 测试
	sudo docker run hello-world

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V7g8EUp2-1606974992259)(C:\Users\jin\AppData\Roaming\Typora\typora-user-images\1606965244075.png)]

# 8.查看下载好的hello-world 镜像 
    docker images
root@ubuntu:/home/mylinux# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              bf756fb1ae65        11 months ago       13.3kB
# 如何卸载docker

# 1.卸载docker的依赖
	sudo apt-get purge docker-ce docker-ce-cli containerd.io
# 2.删除docker的资源
	sudo rm -rf /var/lib/docker
	
#提示:/var/lib/docker 是docker的默认工作路径

6. Docker是怎么工作的

docker 是一个客户端-服务端结构的系统,Docker的守护进程运行在主机上,通过客户端访问,即用客户端发送指令,服务器接收到了就会去执行,跟mysql,redis的一样。
在这里插入图片描述

其他相关文章学习

Docker(1)----初步认识

Docker(2)----命令的学习

Docker(3)----对镜像进一步了解与容器数据卷

Dokcer(4)----网络

Docker(5)----DockerFile的使用

Docker(6)----Docker-compose的使用

Docker(7)----CI/CD的使用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值