Docker的使用

本文详细介绍了Docker容器的概念,对比了Docker与虚拟机的区别,并深入探讨了镜像和容器、Docker架构、安装配置及镜像仓库。通过实例展示了如何创建、管理容器,创建自定义镜像,使用DockerCompose部署微服务,以及设置Docker镜像仓库私服。内容覆盖Docker的基础知识及实践操作。
摘要由CSDN通过智能技术生成

Docker容器

Docker介绍

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

Docker和虚拟机的区别

  1. 启动速度不同

docker 启动快速属于秒级别。虚拟机通常需要几分钟去启动。

  1. 性能损耗不同

docker 需要的资源更少,docker 在操作系统级别进行虚拟化,docker 容器和内核交互,几乎没有性能损耗,性能优于通过 Hypervisor 层与内核层的虚拟化。

  1. 系统利用率不同

docker 更轻量,docker 的架构可以共用一个内核与共享应用程序库,所占内存极小。同样的硬件环境,Docker 运行的镜像数远多于虚拟机数量,对系统的利用率非常高。

  1. 隔离性不同

与虚拟机相比,docker 隔离性更弱,docker 属于进程之间的隔离,虚拟机可实现系统级别隔离。

  1. 安全性不同

docker 的安全性也更弱。Docker 的租户 root 和宿主机 root 等同,一旦容器内的用户从普通用户权限提升为 root 权限,它就直接具备了宿主机的 root 权限,进而可进行无限制的操作。虚拟机租户 root 权限和宿主机的 root 虚拟机权限是分离的,并且虚拟机利用如 Intel 的 VT-d 和 VT-x 的 ring-1 硬件隔离技术,这种隔离技术可以防止虚拟机突破和彼此交互,而容器至今还没有任何形式的硬件隔离,这使得容器容易受到攻击。

  1. 可管理性不同

docker 的集中化管理工具还不算成熟。各种虚拟化技术都有成熟的管理工具,例如 VMware vCenter 提供完备的虚拟机管理能力。

  1. 可用和可恢复性不同

docker 对业务的高可用支持是通过快速重新部署实现的。虚拟化具备负载均衡,高可用,容错,迁移和数据保护等经过生产实践检验的成熟保障机制,VMware 可承诺虚拟机 99.999% 高可用,保证业务连续性。

  1. 创建、删除速度不同

虚拟化创建是分钟级别的,Docker 容器创建是秒级别的,Docker 的快速迭代性,决定了无论是开发、测试、部署都可以节约大量时间。

  1. 交付、部署速度不同

虚拟机可以通过镜像实现环境交付的一致性,但镜像分发无法体系化;Docker 在 Dockerfile 中记录了容器构建过程,可在集群中实现快速分发和快速部署;

镜像和容器

  1. 镜像:Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像,(镜像是只读的)

  2. 容器:镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见

Docker和DockerHub

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

DockerHub:DockerHub是一个Docker镜像的托管平台。这样的平台称为Docker Registry。

类似的还有阿里云镜像服务。

Docker架构

Docker是一个CS架构的程序,由两部分组成:

  • 服务端(server): Docker守护进程,负责处理Docker指令,管理镜像、容器等

  • 客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务器发送指令

安装Docker

Docker CE支持在CentOS7 64位版本系统上安装,并且要求linux内核不低于3.10,CentOS7满足最低内核的要求,所以我们在CentOS7安装Docker

  1. 卸载安装旧版本的Docker(没装过可以不用执行)
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine docker-ce
  1. 安装yum工具
yum install -y yum-utils device-mapper-persistent-data lvm --skip-broken
  1. 更新本地镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast
  1. 安装docker-ce
yum install -y docker-ce
  1. 关闭防火墙
防火墙操作:
systemctl status firewalld #查看防火墙服务是否开启
systemctl stop firewalld #暂时关闭防火墙
systemctl disable firewalld #永久关闭防火墙
systemctl start firewalld #开启防火墙
firewall-cmd --zone=public --add-port=8080/tcp --permanent 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vermouth-1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值