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训练营
794 0
|
Docker 容器
docker task3
天池龙珠计划docker训练营 dockerfile
171 0
|
Docker Python 容器
docker task4
天池龙珠计划docker训练营 练习赛问题
217 0
|
3天前
|
存储 监控 测试技术
如何将现有的应用程序迁移到Docker容器中?
如何将现有的应用程序迁移到Docker容器中?
32 2
|
18天前
|
存储 运维 安全
Docker化运维:容器部署的实践指南
Docker化运维:容器部署的实践指南
|
9天前
|
NoSQL Redis Docker
使用Docker Compose工具进行容器编排的教程
以上就是使用Docker Compose进行容器编排的基础操作。这能帮你更有效地在本地或者在服务器上部署和管理多容器应用。
119 11
|
3天前
|
存储 监控 Java
如何对迁移到Docker容器中的应用进行性能优化?
如何对迁移到Docker容器中的应用进行性能优化?
26 1
|
1月前
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
|
2月前
|
关系型数据库 MySQL 数据库
【赵渝强老师】数据库不适合Docker容器化部署的原因
本文介绍了在Docker中部署MySQL数据库并实现数据持久化的方法,同时分析了数据库不适合容器化的原因。通过具体步骤演示如何拉取镜像、创建持久化目录及启动容器,确保数据安全存储。然而,由于数据安全性、硬件资源争用、网络带宽限制及额外隔离层等问题,数据库服务并不完全适合Docker容器化部署。文中还提到数据库一旦部署通常无需频繁升级,与Docker易于重构和重新部署的特点不符。
219 18
【赵渝强老师】数据库不适合Docker容器化部署的原因