Docker 基础理论和安装部署

49 篇文章 1 订阅
5 篇文章 0 订阅
本文介绍了Docker的基本概念,包括其作为轻量级虚拟机的角色,核心概念如镜像、容器和仓库。阐述了Docker在应用程序部署、微服务、PAAS和持续集成中的应用。同时,详细说明了Docker与虚拟机的区别,以及在安装部署过程中的关键步骤,如设置阿里云镜像源和网络优化。
摘要由CSDN通过智能技术生成

一、Docker 概述

1.1、Docker 是什么

在这里插入图片描述

  • 是一种轻量级的“虚拟机”
  • Docker是一个用于开发,交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。
  • 是一个开源的应用容器引擎,让开发者可以打包大门的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或者Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口
  • 沙箱(Sandbox):在计算机安全领域,沙箱是一种程序的隔离运行机制
  • Docker从一开始就以提供标准化的运行时环境为目标,真正做到“build once, run anywhere”,可以将同一个构建版本用于开发、测试、预发布、生产等任何环境,并且做到了与底层操作系统的解耦。在此基础上还进一步发展出了CaaS(容器即服务)技术。

1.2、Docker 使用场景

  • 打包应用程序简单部署
  • 部署微服务
  • 提供PAAS产品(平台即服务){OpenStack的云主机类似于阿里云的ECS,属于IAAS、Docker(K8S) 属于PAAS}
  • 持续集成和持续交付(CI/CD):开发到测试发布
  • 可脱离底层硬件任意迁移(实现了应用的隔离,将应用拆分并进行解耦),例如:服务器从腾讯云迁移到阿里云

1.3、容器与虚拟机的区别

在这里插入图片描述

区别containerVM
启动速度秒级分钟级
运行性能接近原生(直接在内核中运行)5%左右损失
磁盘占用MBGB
数量成百上千一般几十台
隔离性进程级别系统级别(更彻底)
操作系统主要支持Linux几乎所有
封装程度只打包项目代码和依赖关系,共享宿主机内核完整的操作系统,与宿主机隔离

1.4、Docker 核心概念

  • 镜像
    • 一个面向docker容器引擎的只读模板
  • 容器
    • 从镜像创建的运行实列
  • 仓库
    • 集中保存镜像的地方

二、Docker 的安装部署

关闭防火墙和核心防护

[root@docker ~]# systemctl stop firewalld && systemctl disable firewalld
[root@docker ~]# setenforce 0

安装依赖包

[root@docker ~]# yum -y install yum-utils device-mapper-persistent-data lvm2

设置阿里云镜像源

[root@docker ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker-ce

[root@docker ~]# yum -y install docker-ce    ## 安装
[root@docker ~]# systemctl start docker.service	     ## 启动docker服务
[root@docker ~]# systemctl enable docker.service     ## 开机启动docker服务

镜像加速
我们使用Docker服务下载官方公共镜像的时候会发现非常慢,这是国内的客观原因导致的,我们可以通过阿里云的镜像加速器来实现下载提速
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[root@docker ~]# tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://fm8gbn3.mirror.aliyuncs.com"]
}
EOF
[root@docker ~]# systemctl daemon-reload
[root@docker ~]# systemctl restart docker

网络优化

[root@docker ~]# vim /etc/sysctl.conf 
net.ipv4.ip_forward=1
[root@docker ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@docker ~]# systemctl restart network	
[root@docker ~]# systemctl restart docker

安装完docker后,会自动分配一块网卡

[root@docker ~]# ifconfig 
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:e8:d2:27:8e  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

它的功能就像安装VM时自动给你分配的VM1与VM8,用于宿主机的物理网卡(比如ens33),与docker内部容器的网络连通

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值