Docker(一)

目录

1.Docker概述

1. Docker 为什么会出现

2.Docker的历史

3.Docker能干什么

2.Docker的安装

1.Docker的基本组成

2.安装卸载Docker

1.安装

2.卸载docker 

3.阿里云镜像加速

4.docker的运行底层 

3.Docker的常用命令

1.帮助命令

2.镜像命令

3.容器命令

4.其他常用命令

5.练习

1.nginx

2.tomcat

3.es + kibana

6.可视化工具

4.docker镜像

1.镜像是什么

2.Docker加载原理

3.Docker镜像加载原理

4.分层理解

5.commit镜像


1.Docker概述

1. Docker 为什么会出现

一款产品:开发--上线  两套环境! 应用环境,应用配置

开发  ---  运维。出现了问题:我在我的电脑上能运行,你为啥不可以!  

环境配置是一个十分麻烦的问题,每一个机器都要部署环境(集群redis、es、hadoop)!费时费力

发布一个项目,以前是一个jar或者war直接运行,但是只能在本机运行,因为的环境不能这个项目带给到别的电脑,光要配置编写代码的那个人的电脑配置就可能需要一天时间。

这时候就想到,项目能不能带上环境来安装呢?Docker就是干这个事情的,(jar+(redis mysql jdk es))

传统来说:开发给运维一个jar包,部署交给运维

现在:开发打包部署上线,一套流程做完

java-apk-发布(应用商店)---张三使用apk--安装即可用!
java - jar (环境) ---- 打包项目带.上环境(镜像)--- ( Docker仓库:商店) ---下载我们发布的镜像---直接运行即可!

Docker给以上问题,提出了解决方案

2.Docker的历史

2010年,几个搞IT的年轻人,在美国成立了一家公司Dotcloud

做了一些 paas 的云计算服务,做一些容器化的技术

他们将自己的技术(容器化技术)命名为Docker

Docker刚刚诞生的时候,没有引|起行业的注意! dotCloud 差一点就活不下去了

他们就想到一个办法 开源

2013年,Docker开源

Docker越来越多的人发现了docker的优点! 然后火了, Docker每个月都会更新一个版本!

2014年4月9日,docker1.0发布了

Docker为什么这么火?十分的轻巧!

在容器技术出来之前,我们都是使用虚拟机技术!

虚拟机:在window中装一个Vmware ,通过这个软件我们可以虚拟出来一台或者多台电脑 !笨重!

虚拟机也是属于虚拟化技术, Docker容器技术,也是一种虚拟化技术!

Vm :linux centos原生镜像(一个电脑!)隔离,需要开启多个虑拟机!                       几个G    几分钟
docker:隔离,镜像(最核心的环境4m + jdk + mysq1) 十分的小巧,运行镜像就可以了! 小巧! 几个M KB 秒级启动 !

聊聊Docker

基于GO语言开发的  开源项目

docker官网:https://www.docker.com/

docker官方文档:https://docs.docker.com/

docker hub仓库地址:https://hub.docker.com/

3.Docker能干什么

之前的虚拟机技术

  • 资源占用十分多
  • 冗余步骤多
  • 启动很慢

 容器化技术

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

  • 比较Docker和虚拟化技术的不同
    • 传统虚拟机, 虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
    • 容器内的应用直接运行在宿主机的内部,容器是没有自己的内核的,也没有虚拟硬件,所以轻便
    • 每个容器间是相互隔离的,每个容器内都有一个属于自己的文件系统,互不影响
  • 应用更快速的交互和部署
    • 传统:一堆帮助文档,安装程序
    • Docker: 打包镜像发布测试,一键运行
  • 更便捷的升级和扩缩容
  • 更简的系统运维
  • 更高效的计算资源利用

 DevOps(开发、运维)

应用更快速的交付和部署
传统:一堆帮助文档,安装程序
Docker:打包镜像发布测试,一键运行

更便捷的升级和扩缩容
使用了Docker之后,我们部署应用就和搭积木一样!
项目打包为一个镜像, 扩展服务器A如果出现问题了,直接在服务器B运行镜像

更简单的系统运维
在容器化之后,我们的开发,测试环境都是高度一致的。

更高效的计算资源利用:
Docker是内核级别的虚拟化,可以再一个物理机上可以运行很多的容器实例! 服务器的性能可以被压榨到极致。

2.Docker的安装

1.Docker的基本组成

Docker安装_夜舞精狼的博客-CSDN博客

  • 镜像(image)
    • Docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像 ===> run ===> tomcat01容器, 通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)
  • 容器(container)
    • Docker利用容器技术,独立运行一个或者一组应用, 通过镜像来创建的
    • 启动,停止,删除,基本命令!
    • 就目前可以把这个容器理解为一个简易的linux系统
  • 仓库(repository)
    • 存放镜像的地方
    • Docker Hub(默认是国外的)
    • 阿里云都有容器服务(配置镜像加速!)

2.安装卸载Docker

环境准备

  • 1.会一点linux的基础
  • 2.CentOS7
  • 3.使用xshell连接远程服务器

环境查看

#系统内核必须是3.10以上的
[root@iZ8vbgi1zpv4do6camhur3Z /]# uname -r
3.10.0-1160.76.1.el7.x86_64
#系统版本
[root@iZ8vbgi1zpv4do6camhur3Z /]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

1.安装

安装教程地址:https://docs.docker.com/engine/install/centos/

  • 1.卸载旧版本,我这里测试,,发现服务器没有,那我们就准备开始下载
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

  • 2.下载需要安装的安装包 
yum install -y yum-utils

Nothing to do 就是检查下载之前就有了 

  • 3.设置镜像仓库
#这里官方提供了一个仓库,但是在国外下载速度很慢
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
#阿里云国内安装仓库
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 4.更新软件包的索引
yum makecache fast
  • 5.安装docker相关的东西
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • 6.启动 Docker
systemctl start docker
  • 7.检查Docker的版本号,和版本信息
docker version

  • 8.通过运行映像来验证 Docker 引擎安装是否成功
docker run hello-world

  • 9.查看一下镜像 
docker images

2.卸载docker 

  • 1.卸载依赖
yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
  • 2.删除资源
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

3.阿里云镜像加速

如果这里使用的是阿里云的服务器,就可以使用镜像加速,让下载速度更加快

  • 1.登录阿里云服务器,找到容器镜像服务

  • 2.找到镜像加速器,选择centOS

  • 3.配置使用
#1.创建一个目录
sudo mkdir -p /etc/docker
#2.编写配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://qogh9nx7.mirror.aliyuncs.com"]
}
EOF
#3.服务重启
sudo systemctl daemon-reload
#4.启动docker
sudo systemctl restart docker

4.docker的运行底层 

run的运行分析流程图

这里测试一个远程仓库没有的镜像

Docker是怎么工作的?

Docker是一个Client Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问。

DockerServer接收到Docker-Client的指令, 就会执行这个命令!

守护进程从客户端接受命令并管理运行在主机上的容器。容器,是一个运行时环境就是我们所说的集装箱。 

为什么Docker比Vm快 

  • docker有着比虚拟机更少的抽象层。由于docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势
  • docker利用的是宿主机的内核,而不需要Guest OS。因此,当新建一个 容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。仍而避免引寻、加载操作系统内核返个比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载GuestOS,返个新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了复杂过程,因此新建一个docker容器只需要几秒钟。

3.Docker的常用命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值