云原生Docker和K8S 01-Docker基础

什么是容器?

容器就是将软件打包成标准化单元,以用于开发、交付和部署。

  • 容器镜像是轻量的、可执行的独立软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。
  • 容器化软件适用于基于Linux和Windows的应用,在任何环境中都能够始终如一地运行。
  • 容器赋予了软件独立性 ,使其免受外在环境差异(例如,开发和预演环境的差异)的影响,从而有助于减少团队间在相同基础设施上运行不同软件时的冲突。

什么是Docker?

  • Docker 是世界领先的软件容器平台。
  • Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核 的cgroup,namespace,以及AUFS类的UnionFS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。 由于隔离的进程独立于宿主和其它的隔离的进
    程,因此也称其为容器。Docke最初实现是基于 LXC.
  • Docker 能够自动执行重复性任务,例如搭建和配置开发环境,从而解放了开发人员以便他们专注在真正重要的事情上:构建杰出的软件。
  • 用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

Docker容器的特点

  • 轻量
    在一台机器上运行的多个 Docker 容器可以共享这台机器的操作系统内核;它们能够迅速启动,只需占用很少的计算和内存资源。镜像是通过文件系统层进行构造的,并共享一些公共文件。这样就能尽量降低磁盘用量,并能更快地下载镜像。
  • 标准
    Docker 容器基于开放式标准,能够在所有主流 Linux 版本、Microsoft Windows 以及包括 VM、裸机服务器和云在内的任何基础设施上运行。
  • 安全
    Docker 赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。Docker 默认提供最强的隔离,因此应用出现问题,也只是单个容器的问题,而不会波及到整台机器

为什么要用Docker

  • 一致的运行环境
    Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现 “这段代码在我机器上没问题啊” 这类问题
  • 更快速的启动时间
    可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间
  • 隔离性
    避免公用的服务器,资源会容易受到其他用户的影响
  • 弹性伸缩,快速扩展
    善于处理集中爆发的服务器使用压力
  • 迁移方便
    可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况
  • 持续交付和部署
    使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署

Docker基本概念

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等 。

容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。前面讲过镜像使用的是分层存储,容器也是如此。

容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存于容器存储层的信息都会随容器删除而丢失。

按照 Docker 最佳实践的要求,容器不应该向其存储层内写入任何数据 ,容器存储层要保持无状态化。所有的文件写入操作,都应该使用数据卷(Volume)、或者绑定宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主(或网络存储)发生读写,其性能和稳定性更高。数据卷的生存周期独立于容器,容器消亡,数据卷不会消亡。因此, 使用数据卷后,容器可以随意删除、重新 run ,数据却不会丢失。

命令:

启动Docker后台服务

  • sudo systemctl start docker

重启Docker服务

  • sudo systemctl restart docker

安装成功后可通过查看

  • docker version

卸载Docker命令

  • sudo yum remove docker-ce
  • sudo rm -rf /var/lib/docker

查看本地镜像的IMAGE:

  • docker images -q
  • docker images ls

dokcer 启动容器:

docker run参数 镜像名称:tag执⾏的命令
参数说明:

  • -i 保持和 docker 容器内的交互,启动容器时,运⾏的 命令结束后,容器依然存活,没有退出(默认是会退 出,即停⽌的)
  • -t 设置参数“-t”可以为容器重新分配一个伪输入终 端,而设置参数“-d”则会在后台运行容器,并返回容 器ID。
  • -d 后台运⾏容器
  • --rm 容器在启动后,执⾏完成命令或程序后就销毁
  • --name 给容器起⼀个⾃定义名称
  • -p 宿主机:内部端口

查看所有容器:

  • docker ps -a

停止容器:

  • docker stop 容器ID docker container stop 容器ID或者名字

启动容器:

  • docker start 容器名/容器 ID

删除容器:

  • docker rm -f 容器名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值