云原生【1】:docker 常用知识总结

本文是云原生系列的第一篇,主要总结了Docker的基础知识,包括容器、镜像、仓库、卷和网络的概念,以及Dockerfile、docker-compose的使用。此外,还探讨了多架构镜像的构建和容器编排的重要性。
摘要由CSDN通过智能技术生成

云原生【1】:docker 常用知识总结

前言

日常工作中已经离不开云服务了。
AWS的EKS,ECS等容器化的服务更是工作的基础。

因此,预计写3篇文章,将这些内容进行总结输出。

  1. docker
  2. k8s
  3. AWS的ECS,EKS

基本概念

Docker 是一个软件平台,让您可以快速构建、测试和部署应用程序。Docker 将软件打包成名为容器的标准化单元,这些单元具有运行软件所需的所有功能,包括库、系统工具、代码和运行时。使用 Docker,您可以将应用程序快速部署和扩展到任何环境中,并且知道您的代码将运行。

总览

在这里插入图片描述

容器 container

docker中的容器,就是具体干活的进程。

运行在主机(host)上的沙盒进程(sandboxed process),与主机上的所有其他进程隔离。
这种隔离利用了内核命名空间和 cgroups.

通常来讲, 每个容器应该只做一件事,且将其做好.

镜像 image

镜像和容器的关系,类似于面向对象中的 classinstance
镜像就是模板, 通过模板可以生成多个一样的容器.

镜像包含容器的文件系统,它必须包含运行应用程序所需的一切——所有依赖项、配置、脚本、二进制文件等。镜像还包含容器的其他配置,例如环境变量、要运行的默认命令、 和其他元数据。

Build Once, Run Anywhere

仓库 repo

build好的镜像,如何进行共享?

可以push到 ECR, docker hub上面,提供给其他人使用。
需要先创建一个repo 仓库。 和 github的代码仓库类似。

卷 volumes

根据image进行run出来的容器, 会在容器exit后, 所做的改变都将取消.
缺少数据的持久化.

例如, 我们想要将mysql通过容器进行运行.
如果容器退出后,数据就不存在了. 这肯定是无法接受的.

docker 就提供了解决方案.

volume 提供了可以连接本地文件系统和容器之间的能力.

有2种主要的类型:

  • named volumes: 单向存储
  • bind mounts: 双向存储

网络 networking

默认情况下,容器是独立运行的,并且对同一台机器上的其他进程或容器一无所知。
那么,我们如何让一个容器与另一个容器通信呢?

答案是网络。

通过网络,可以将容器直接打通, 进行通信.

例如: 我们在日常开发中, mysql一个容器, nodejs一个容器, redis一个容器.
整个应用需要这3个容器能够进行通信. 否则无法正常运转.

基本使用

docker desktop 上可以看到本地的镜像和运行的容器。 操作简单,使用方便。

这里简单记录几个常用的命令

# cheat sheet: <https://www.docker.com/wp-content/uploads/2022/03/docker-cheat-sheet.pdf>

# 打包镜像 -
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值