docker task1

简介: 天池龙珠计划docker训练营

背景

随着云原生、AI等技术的推进,容器技术逐渐成为算法科学家的必备技能之一

微服务的出现,导致使用的技术更加多元化,在部署上的难度也变得更大

 docker可以减轻在部署上面的复杂性

docker起到了承上启下的桥梁作用:将App连带环境一同打包直接部署到服务器上


为什么用docker

在没出现docker的时候,项目和服务器配置的周期相当的冗杂并且繁琐。

利用docker,不但可以使用一个空的镜像,从头开始构建

还可以使用之前各种大牛已经build好的镜像,直接使用

而且在项目需要迁移的时候,我们只需要在需要部署的地方,直接使用之前项目使             用的docker放置好自己的项目即可,方便快捷。


docker底层技术支持

NameSpaces:用于做进程之间的隔离

Control Groups: 用于做资源控制,根据需求划分资源的核心数,内存,硬盘等

Union file systems(UFS,联合文件系统):Container和image的分层


docker基本概念

镜像(image)

镜像是文件与meta data的集合

         只读

分层,并且每一层都可以添加删除文件,从而形成新的镜像

         不同的镜像可以共享相同的层(layout)

            每一个镜像都会依赖于另一个镜像

          这个依赖关系体现在docker镜像制作的dockerfile中的FROM指令中

容器(container)

 通过image创建

  在image 的最后一层上面再添加一层,这一层比较特殊,可读写。

  image负责存储和分发,container负责运行

 容器是镜像的一个运行实例

  容器的结构是与镜像相类似的,底部也是一层层的只读层

  不过在最上层会存在一个存储层,可以在这一层定制化这个容器

  还可以通过build命令,把容器打包成我们需要的镜像

  另外镜像启动后会形成一个容器

  容器在计算机中是一个进程,但这个进程对其他进程并不可见。

 容器的启动过程:

  检查镜像是否在本地存在,如果不存在去远程仓库下载

  ==>利用镜像创建一个容器

  ==>启动刚刚创建的容器

  ==>分配一个文件系统给容器,并且在镜像层外挂载一个可读可写层

  ==>从宿主主机的网桥接口中桥接一个给容器

  ==>从网桥中分一个ip地址给容器

  ==>执行用户指定的应用程序

  ==>执行完毕后容器自动终止

仓库(repository)

 一个远程的仓库记录着我们的代码,和每一次我们提交的记录

 默认情况下,我们都是从docker hub中取得的镜像

相关文章
|
并行计算 Docker 异构计算
docker task5
天池龙珠计划Docker训练营
652 0
|
Docker 容器
docker task3
天池龙珠计划docker训练营 dockerfile
138 0
|
Docker Python 容器
docker task4
天池龙珠计划docker训练营 练习赛问题
116 0
|
7天前
|
弹性计算 运维 持续交付
探索Docker容器化技术及其在生产环境中的应用
探索Docker容器化技术及其在生产环境中的应用
41 5
|
2天前
|
负载均衡 网络协议 开发者
掌握 Docker 网络:构建复杂的容器通信
在 Docker 容器化环境中,容器间的通信至关重要。本文详细介绍了 Docker 网络的基本概念和类型,包括桥接网络、宿主网络、覆盖网络和 Macvlan 网络等,并提供了创建、管理和配置自定义网络的实用命令。通过掌握这些知识,开发者可以构建更健壮和灵活的容器化应用,提高应用的可扩展性和安全性。
|
18天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
18天前
|
NoSQL 应用服务中间件 Redis
Docker跨宿主机容器通信-通过网络跨宿主机互联
这篇文章介绍了Docker容器跨宿主机通信的实现方法,包括Docker的四种网络模式(host、none、container、bridge)以及如何通过修改网络配置和添加路由规则来实现不同宿主机上的容器之间的互联。
56 0
Docker跨宿主机容器通信-通过网络跨宿主机互联
|
18天前
|
应用服务中间件 nginx Docker
Docker同一台宿主机容器通信-通过容器名称互联
本文详细介绍了如何通过容器名称实现同一宿主机上容器间的互联,并提供了实战案例。首先,文章解释了容器间通过自定义名称访问的原理,随后演示了创建并连接Tomcat与Nginx容器的具体步骤。此外,还讨论了配置中可能出现的问题及解决方案,包括避免硬编码IP地址和使用自定义容器别名来增强系统的灵活性与可维护性。通过这些实践,展示了如何高效地配置容器间通信,确保服务稳定可靠。
23 1
Docker同一台宿主机容器通信-通过容器名称互联
|
2天前
|
运维 Ubuntu Linux
深入理解并实践Docker容器化技术
深入理解并实践Docker容器化技术
21 6
|
8天前
|
运维 Docker 微服务
掌握 Docker Compose:简化你的多容器应用部署
在微服务架构和容器化技术普及的今天,管理多容器部署变得颇具挑战。Docker Compose 通过一个 YAML 文件定义和运行多容器应用,简化了部署和运维。本文介绍其基本概念、使用方法及优势,包括服务、项目、卷和网络等核心概念,并提供从安装到管理服务的详细步骤,助你轻松掌握 Docker Compose,提高开发效率和应用运维质量。