[Docker入门-2] Docker Containers 的创建和使用

基于Docker与Dev Containers构建现代化本地开发环境实战指南 在云原生与微服务架构日益普及的背景下,开发环境的一致性与团队协作效率成为工程实践中的核心挑战。容器化技术通过将应用及其依赖打包成标准化单元,从根本上解决了环境差异问题。Docker作为容器化的事实标准,结合Docker Compose进行多服务编排,能够高效管理复杂依赖。在此基础上,Dev Containers规范将完整的开发环境(包括工具链、编译器、IDE扩展)定义在容器内,实现了开发环境即代码的理念。这种组合不仅确保了从开发到生产的环境一致性,还大幅降低了新成员的上手成本。通过Makefile统一命令入 阅读详情

更多精彩内容:http://www.codeye.top/

Dockerfile

  • Dockerfile 定义了容器内部环境,虚拟了网络、存储等资源,该环境与系统的其他部分隔离。外部访问服务资源时,Dockerfile会说明需要“复制”到哪些文件哪些环境

创建Dockerfile

vi Dockerfile

文件内容如下:

# Use an official Python runtime as a parent image
FROM python:2.7-slim

# Set the working directory to /app
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . /app

# Install any needed packages specified in requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt

# Make port 80 available to the world outside this container
EXPOSE 80

# Define environment variable
ENV NAME World

# Run app.py when the container launches
CMD ["python", "app.py"]

Dockerfile文件中包含了app.py和requirements.txt文件(说明即将进行哪些操作)

app.py文件内容

from flask import Flask
from redis import Redis, RedisError
import os
import socket

# Connect to Redis
redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)

app = Flask(__name__)

@app.route("/")
def hello():
    try:
        visits = redis.incr("counter")
    except RedisError:
        visits = "<i>cannot connect to Redis, counter disabled</i>"

    html = "<h3>Hello {name}!</h3>" \
           "<b>Hostname:</b> {hostname}<br/>" \
           "<b>Visits:</b> {visits}"
    return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits)

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=80)

requirements.txt文件内容

Flask
Redis

内容如下:
在这里插入图片描述

创建一个Docker镜像

docker build --tag=friendlyhello .

在这里插入图片描述
在这里插入图片描述

运行应用

docker run -p 4000:80 friendlyhello

在这里插入图片描述
访问:http://localhost:4000/
在这里插入图片描述

Dev Containers + VS Code + Docker Compose:构建开箱即用的现代开发环境 在软件开发中,环境配置与依赖管理是开发者面临的基础挑战,直接影响团队协作效率和开发体验。容器化技术通过将应用及其运行时、工具和依赖打包成标准单元,从根本上解决了环境一致性问题。其核心原理是利用操作系统级虚拟化,实现进程隔离与资源控制,从而确保应用在任何地方都能以相同的方式运行。这一技术价值在于将开发、测试、生产环境对齐,极大减少了“在我机器上能跑”的经典问题。结合持续集成与部署(CI/CD)流程,容器化进一步提升了软件交付的可靠性和速度。在应用场景上,它尤其适用于微服务架构、多技术栈项目和需要快速搭建与复现 阅读详情

相关推荐

课程35:Docker容器:Windows Containers与Linux Containers区别

本文是《.Net Core从零学习搭建权限管理系统》教程专栏的课程(点击链接,跳转到专栏主页,欢迎订阅,持续更新…)专栏介绍:以实战为线索,基于.Net 7 + REST + Vue、前后端分离,不依赖任何第三方框架,从零一步一步讲解权限管理系统搭建。专栏适用于人群:Web后端开发人员1、Windows Containers与Linux Containers区别2、基于Linux 本地Docker调试3、Windows下基于Linux Containers部署。

成长的足迹 777

Docker新建容器

一、查看docker中的镜像 先查看docker中有哪些镜像,决定在哪个镜像中创建容器(如果没有镜像,要先拉个镜像,一般Ubuntu16.04或Ubuntu14.04就可以了)。 查看镜像命令:sudo docker images 会列出docker中所有的镜像,比如我电脑中有: REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu

yx903520的博客 1544

用PyTorch和snnTorch库5分钟搞定一个脉冲神经网络(SNN)手写数字识别Demo

本文详细介绍了如何使用PyTorch和snnTorch库快速搭建一个脉冲神经网络(SNN)手写数字识别Demo。通过模拟生物神经元的脉冲发放机制,SNN在低功耗场景中展现出独特优势。文章涵盖环境配置、数据预处理、模型构建、训练评估全流程,并提供了性能优化技巧和常见问题解决方案,帮助开发者在5分钟内实现高效的SNN应用。

weixin_29300931的博客 392

Docker 容器(Container)的管理

容器(Container)是Docker的核心组件之一,它是用于运行镜像的一个沙箱环境,是一个从镜像创建的应用运行实例,镜像打包、构建完成后最终都会运行于容器中。容器具有良好的隔离性,容器之间是相互隔离、互不可见。本文将介绍Docker容器的创建与管理,并以容器的生命周期为主线介绍容器的创建、管理、停止,到最终删除。 检查Docker状态 创建、运行Docker容器 2.1 ...

zhengun的专栏 815

SAP采购订单中项目类别B(限制)的控制逻辑

在笔者所在企业中,框架类采购订单中项目类别需要选择B(限制)。今天笔者从比较全面的角度分析了一下这个项目类别B到底可以决定些什么?控制到什么?先从后台SPRO中打开相应的配置菜单。 打开项目类别B之后,可以看到一些配置信息,这里有一点与其它配置不同的地方,即无法新增项目,也无法修改现有项目。这个疑惑今后再去解决吧。当前只研究项目类别B的控制逻辑。 下面就参考上图中的配置分段来分析和测试其控制逻辑, 1、如项目类别配置图,所需材料值为不允许;经测试,如下图在采购订单创建时,不能输入物料编号条目。

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 6032

火山引擎实时对话AI实战:5分钟搞定WebRTC+大模型+ASR/TTS全链路集成

本文详细介绍了如何利用火山引擎的实时对话AI解决方案,快速集成WebRTC、大模型、ASR和TTS服务,构建低延迟、高保真的实时语音对话应用。通过实战代码示例,从环境准备、音频流管理到全链路串联与性能优化,为开发者提供了一套端到端的集成指南,适用于智能客服、在线教育等互动场景。

weixin_29051245的博客 1128

Docker基础之容器(container)创建命令

Table of Contents 用法 postContainersCreate ContainerCreate func create newContainer BaseContainer type CommonContainer struct 创建一个container的RWLayer MountPoints的设置 用法 # docker container create --name myetcd etcd_cluster:gc4.0 create命令完成的工作: 在hots主.

m0_43405302的博客 7030

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(四)-无人机系统(UAS)命令与控制(C2)通信用例

UTM向5G网络提供无人机系统C2通信所需的信息,例如服务类别、无人机系统服务的流量类型、授权的无人机系统服务所需的QoS以及无人机系统服务的订阅。遵循模型B的网络辅助C2模型,为了确保UAS操作的C2通信的服务可用性和可靠性,特别是当无人机在操作员的视线之外(BLOS)飞行时,为无人机提供支持冗余的C2通信链路。如果需要创建额外的C2通信连接或更改现有数据连接的配置以进行C2通信,则5G网络会根据无人机系统的授权服务信息和C2通信中所需的QoS和优先级,修改或分配一个或多个C2通信流量的QoS流。

u011376987的博客 2051

使用Docker构建Python数据科学容器

Photo by Bryan Goff onUnsplash Bryan Goff在Unsplash上拍摄的照片 TL; DR (TL;DR) Artificial Intelligence(AI) and Machine Learning(ML) are literally on fire these days. Powering a wide spectrum of use-cases r...

cumi7754的博客 518

【UE5.3 Cesium for Unreal】GlobePawn编译实战:从源码修改到功能实现

本文详细介绍了在UE5.3中为Cesium for Unreal插件编译和集成非官方增强组件GlobePawn的完整实战流程。从获取源码、准备资产文件、部署项目结构,到逐行修改代码适配工程并解决典型编译错误,最终实现在三维地球上实现类似Google Earth的丝滑鼠标交互体验。

weixin_29011667的博客 307

京东技术产品经理面试全记录:从简历投递到一面45分钟实战复盘

本文深度复盘京东技术产品经理面试全流程,从策略准备、思维题拆解、项目阐述到反问谈判,提供了一套可演练的求职策略体系。文章强调该岗位需具备横跨技术与商业的枢纽能力,并通过“QQ分组vs微信标签”等案例,剖析了产品思维与结构化表达在面试中的关键作用,助力候选人将紧张转化为掌控感。

weixin_29275257的博客 630

一文详解Docker容器(Container)

Docker容器(Container) 是独立运行的一个或一组应用。Docker容器(Container) 是从 Docker镜像(Images) 创建的运行实例,它可以被启动、开始、停止、 删除。每个 Docker容器(Container) 都是相互隔离的、保证安全的平台。Docker容器(container) 和 Docker镜像(Images) 以及 Docker仓库 并称为 Docker 的三大核心概念。容器保护三个状态:运行:进程正常运行暂停:进程暂停,CPU不再运行,并不释放内存。

一个菜鸡的博客 3202

华为 MetaERP 财务模块的核心业务对象,按子模块与架构维度分类,以表格呈现,适配架构设计与实施落地

华为MetaERP财务模块基于4A架构(业务/应用/数据/技术)与TOGAF框架,实现业财一体化与全球合规。业务架构涵盖组织模型与核心流程,应用架构支撑财务操作,数据架构确保数据一致性,技术架构提供高性能技术底座。模块覆盖总账、应收应付、资产等子模块,支持多组织、多币种、多准则核算,通过实时会计引擎实现"交易即核算"。4A架构与TOGAF框架对应,实现业务能力、应用组件、数据模型与技术栈的深度融合,为华为全球化财务核算提供核心支撑。

金牌架构师 437

Dev Containers 扩展入门

本篇帖子回顾了 Dev Containers 扩展的核心功能以及设置它的一般要求。此外,我们看到了如何使用模板将 Dev Containers 设置文件添加到项目中。这只是 Dev Containers 扩展功能的冰山一角。在接下来的帖子中,我们将深入研究文件的核心功能,并了解我们如何自定义容器和环境设置。这包括使用 Dockerfile、设置环境变量,以及使用 Docker Compose 启动多个容器。

龙哥盟 1074

机加工机器人系列编程:Fanuc M-710iC_(2).FanucM-710iC机器人的硬件配置

Fanuc M-710iC 机器人是一种广泛应用在汽车零部件制造行业中的工业机器人。它的本体结构设计紧凑、稳定,适用于多种加工任务。了解机器人的本体结构是进行编程和维护的基础。

zhubeibei168的博客 992

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

VS Code容器开发:使用Dev Containers的完整教程

想要快速搭建一致的开发环境?Visual Studio Code的Dev Containers扩展让你能够在容器中进行完整的功能开发。无论你是初学者还是经验丰富的开发者,这个终极指南都将帮助你掌握VS Code容器开发的核心技巧。😊 ## 什么是VS Code Dev Containers? **VS Code Dev Containers**扩展允许你使用容器作为全功能的开发环境。它让你能

gitblog_00354的博客 1062

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

docker containers logs清理

进入到/var/lib/docker/containers 目录下 通过 du -h --max-depth=1 查找大文件占用,发现这些文件中占用空间最大的是***-json.log**文件。/var/lib/docker/containers/ID目录,如果容器使用了默认的日志模式,他的所有日志都会以JSON形式保存到此目录下。/var/lib/docker/overlay2 目录下含有容器的读写层,如果容器使用自己的文件系统保存了数据,那么就会写到此目录下。

Swlymbcty的博客 1164

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Unity 与 Unity Hub 激活完整教程:3 步搞定 UniHacker 跨平台配置

UniHacker 是一款支持 Windows、macOS、Linux 的 Unity 与 Unity Hub 激活工具,基于 .NET 6.0 和 Avalonia 开发。你选一次目标文件、点一次按钮,老版本 Unity 编辑器即可免登录打开工程,适合教学环境、版本对比学习和原型开发。 ## 🚀 三步跑起来 ### 先决条件:系统要求与环境检查 - 系统:Windows、macOS 或

gitblog_00713的博客 438

Docker新手必看:如何通过gh_mirrors/containers2/containers轻松部署复杂生物信息学流程

对于生物信息学研究人员来说,部署复杂的分析流程一直是个头疼的问题。依赖冲突、环境配置、版本兼容性等问题常常让人望而却步。现在,有了BioContainers项目,这一切都变得简单了!本文将为你详细介绍如何使用gh_mirrors/containers2/containers项目来轻松部署和管理生物信息学容器,让你快速上手Docker容器化技术。 ## 🔍 什么是BioContainers项目?

gitblog_00102的博客 427

终极Dockerfile解析:揭秘gh_mirrors/containers2/containers中200+生物工具的容器化实现

在生物信息学研究中,工具的部署和环境配置往往是科研人员面临的一大挑战。gh_mirrors/containers2/containers项目作为一个专注于生物信息学工具容器化的开源项目,通过Docker技术为200多种生物工具提供了便捷、一致的运行环境,极大地简化了工具的安装和使用流程。本文将深入解析该项目中Dockerfile的实现细节,带你了解生物工具容器化的核心技术和最佳实践。 ## 项目

gitblog_00759的博客 830

Dev Containers深度整合Docker Compose(从入门到生产级部署)

掌握VSCode的Dev Containers与Docker Compose高效协同方法,解决多服务开发环境搭建难题。适用于微服务、全栈项目本地部署,实现配置即代码、环境一致性与团队协作效率提升。一键启动复杂应用栈,开发即生产,值得收藏。

LiteCode的博客 654

Docker Desktop的 Containers proxy 可能会影响 docker pull

本文记录了Docker Desktop在Windows环境下出现的代理隔离异常问题:当Containers proxy设置代理时,即使Docker Desktop proxy选择No proxy,docker pull命令仍会尝试连接Containers proxy地址并失败。通过端口对照实验证实了二者的关联性,这与界面描述"仅影响运行中容器的出站流量"不符。文章提供了三种临时解决方案:运行时传参、Docker Compose配置或修改.docker/config.json文件。

h88888888888的博客 659

Kata Containers 使用教程

Kata Containers 使用教程 项目介绍 Kata Containers 是一个开源项目,旨在创建轻量级虚拟机,这些虚拟机可以无缝集成到容器生态系统中,提供与标准容器相同的使用体验,同时增强安全性和隔离性。Kata Containers 结合了容器和虚拟机的优势,适用于需要更高安全要求的场景。 项目快速启动 安装 Kata Containers 首先,确保你的系统满足 Kata Cont...

gitblog_00284的博客 895

Kata Containers零基础学习从零到一

Docker容器通过命名空间和控制组提供逻辑隔离,共享宿主机的内核,资源利用高效,但隔离度相对较低。Kata Containers等使用MicroVM技术,为每个容器提供独立的内核和硬件抽象层,隔离度高,安全性增强,但可能牺牲一点启动速度和资源效率。这张图可能详细展示了从应用管理层到基础虚拟化层的整个流程,强调了不同层次之间的信息流动和职责划分。

llovewuzhengzi的博客 2883

PP-StructureV2 文档分析模型全览:版面分析、OCR 与表格识别模型的下载与串联使用指南

PP-StructureV2 是面向文档智能的版面结构化系统,本文基于 models 仓库 `modelcenter/PP-StructureV2/` 目录下的官方模型清单,系统梳理其**版面分析(Layout Analysis)、表格场景 OCR、表格结构识别(Table Recognition)**三大类共 11 个预训练模型,涵盖模型能力差异、推理/训练权重下载地址、配套 dict 词典,并

gitblog_01050的博客 337

Windows Server Containers 支持 Windows 开发者使用 Docker

在过去几年里,Docker 和容器已成为全球开发界和企业最热门的话题之一。去年秋天发布的 Windows Server 2016 支持 Windows 开发者使用容器,使得这一热门话题再次升温。Windows 和 Docker 是如何走到一起的? 一切始于 2014 年隆重举办的普吉特海湾夏令营,当时 Windows Base 团队启动了一个新项目,最终推出了 Windows Server Con

dotNET跨平台 960
上一篇: [Docker入门-1] Docker CE for Ubuntu hello-world
下一篇: 如何给下载文件添加下载次数
猫影
博客等级 码龄10年 31粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值