首页 > 其他分享 >Docker 如何开发容器

Docker 如何开发容器

时间:2023-04-05 13:57:25浏览次数:42  
标签:容器 python hello 开发 world Docker docker

Docker 基本使用

Docker 的核心价值在于虚拟化或者说环境隔离【通过虚拟化技术实现虚拟环境】,解决环境配置和部署的依赖问题实现解耦

我对虚拟化的理解源自《Operating Systems: Three Easy Pieces》,推荐阅读

容器技术相关历史推荐知乎上的这篇文章:容器技术的历史

Docker 基本概念

Docker 提供了在称为容器的松散隔离环境中打包和运行应用程序的能力

  • 镜像(Image):镜像是一个只读的模板,用于创建 Docker 容器
  • 容器(Container):容器是一个可运行的实例,是镜像的运行时实例

两者的关系类似于面向对象编程中的类和对象

Docker 生态系统

  • Docker 注册表(Docker Registry):Docker 注册表是一个存储和分发 Docker 镜像的场所
  • Docker 客户端(Docker Client):用于与 Docker 服务器交互的 CLI 工具
  • Docker 服务器(Docker Server):Docker 服务器是一个守护进程,用于管理 Docker 对象,如镜像、容器、网络和卷
  • Docker Hub:这是所有自定义镜像的存储库,类似于 GitHub

一种技术的发展离不开生态系统的支持,Docker 的生态系统也是 Docker 成功的重要原因之一,像 Git 与 GitHub、Node.js 与 npm、Python 与 PyPI 等技术都有类似的生态系统

关于 Docker 安装,这里不再赘述,可以参考官方文档:Get Docker

不过我比较好奇的是 Docker 是基于 Linux 的 Kernal 实现的,那么在 Windows 和 Mac 上如何运行呢?反正因为这个在 Windows 和 Mac 安装会相对麻烦一点。我只是练习使用是在虚拟机中使用 Debian 安装的

只不过需要说明一下,一般在安装 Docker 后,关于 Docker 相关内容需要使用 sudo 进行提权,如果想方便使用应该将你想使用的用户添加到 docker 组中,命令:sudo usermod -aG docker $USER

Docker 使用容器

通过镜像创建容器

一般在创建容器的过程:

  • Docker 守护进程首先尝试在本地仓库查找 Image
  • 如果本地没有对应 Image 会继续远程拉取
  • 在 Docker 守护进程成功获取 Image,后会通过 Image 创建 Container

示例:

# hello-world 镜像是用于测试的,通过下面命令可以创建对应容器并运行此容器
docker run hello-world


#### 下面是会显示的内容 #####

# 这是本地没有 hello-world 镜像
Unable to find image 'hello-world:latest' locally

# 下面是真的进行远程拉取,并创建容器
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:ffb13da98453e0f04d33a6eee5bb8e46ee50d08ebe17735fc0779d0349e889e9
Status: Downloaded newer image for hello-world:latest

# 下面是容器运行的内容,除了首行外我使用 ... 做了省略 

标签:容器,python,hello,开发,world,Docker,docker
From: https://www.cnblogs.com/shadow-/p/17289295.html

相关文章

  • Docker 下 Redis 数据库的持久化
    1、Docker容器的数据卷Docker是将系统与运行的环境打包成容器来运行,当容器删除后,容器里的系统自然也就没有了。但是,在实际的项目中,希望Docker容器产生的数据能够持久化,同时容器之间也能够共享数据。Docker提供了数据卷技术来实现这些需求。数据卷就是目录或文件,存......
  • j2me开发FAQ整理
    什么是J2ME?答:J2ME是Java 2 Micro Edition的简称,是SUN推出的针对嵌入式消费类电子产品的开发平台,例如手机、PDA和电视机顶盒等。事实上,J2ME是一整套技术和规范的集合。 开发J2ME应用程序使用什么开发环境?答:目前比较主流的开发环境有JBuilder、Eclipse和SUN Mobile等。本站推荐......
  • 多任务版TCP服务端程序开发案例+源码
    Python进阶篇-系列文章全篇......
  • centos快速的安装和卸载docker
    在centos系统上快速安装docker-ce,废话不多说,直接上shell代码,适配与所有centos和ali-cloud系统: #安装依赖包yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2 #添加Docker软件包源,我们这里配置了阿里云的镜像源yum-config-manager......
  • Linux系统之安装java开发环境
    (Linux系统之安装java开发环境)一、java介绍1.java简介1.Java是由SunMicrosystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由JamesGosling和同事们共同研发,并在1995年正式推出,后来Sun公司被Oracle(甲骨文)公司收购,Java也随之成为......
  • 性能环境之Jenkins+Maven自动化部署SpringBoot压测环境(Docker篇)
    前言在上文性能环境之Jenkins+Maven自动化部署SpringBoot压测环境(实战篇)中我们介绍了常规部署流程,本文将在上文的基础上扩展Jenkins+Maven+Docker自动化部署我们的压测环境。关于DockerDocker在这里有什么用?Docker,是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到......
  • 【fastweixin框架教程7】微信企业号自定义菜单接口开发
     下面这个类我对fastweixin框架的简单封装调用,大家可以参考,如果需要QYAPIConfigExt和MainServernSupport,请参考本教程以前几篇文章  应用可以在会话界面底部设置自定义菜单,菜单项可按需设定,并可为其设置响应动作。用户可以通过点击菜单项,收到你设定的消息。企业号支持自定义......
  • Qt音视频开发33-不同库版本不同位数的库和头文件的引用
    一、前言做开发过程中难免遇到需要引入第三方库的时候,而且需要在不同库版本、不同系统、不同位数下都需要。第三方的库版本众多,一般在大版本中的小版本都是兼容的,但是大版本不兼容,比如ffmpeg目前就有1-6六个大版本,除去1几乎没人用那还剩5个大版本,目前主要还是4居多。vlc主要是vlc......
  • Defi开发简介
    Defi开发简介介绍Defi是去中心化金融的缩写,是一项旨在利用区块链技术和智能合约创建更加开放,可访问和透明的金融体系的运动.这与传统金融形成鲜明对比,传统金融通常由少数大型银行和金融机构控制在Defi的世界里,用户可以直接从他们的电脑或移动设备上访问广泛的金融服务,而不需......
  • 数据库系统原理之数据库应用设计与开发实例
    数据库应用设计与开发实例第一节需求描述与分析在此,结合某高校个性化课程在线选课的实际需求,给出一个简化的需求分析一、功能性需求1管理员后台模块学生信息管理教师信息管理课程信息管理班级信息管理2学生使用模块查询课程浏览所选课程查询成绩3教师使用模......