当前位置: 首页 > article >正文

Docker使用小结

概念
  • 镜像( Image ) :相当于一个 root 文件系统;镜像构建时,分层存储、层层构建;
  • 容器( Container ) :镜像是静态的定义,容器是镜像运行时的实体;容器的实质是进程;分层存储;所有的文件写入操作,都应该使用 数据卷(Volume)、或者绑定宿主目录;
  • 仓库( Repository ):一个仓库会包含同一个软件不同版本的镜像
常用命令
命令作用
docker command --help查看命令帮助
docker ps显示正在运行的容器信息
docker start CONTAINER ID启动已停止的容器
docker restart CONTAINER ID重启已停止的容器
docker logs CONTAINER ID查看容器内的标准输出
docker stop停止容器
docker rm
docker inspect获取容器或镜像的详细信息
docker build -t使用 Dockerfile 构建镜像
docker images列出本地存储的所有镜像
docker pull从 Docker 仓库拉取镜像
docker push将镜像推送到 Docker 仓库
docker exec在运行的容器中执行命令
docker login登录 Docker 仓库
docker logout登出 Docker 仓库
docker info显示 Docker 系统的详细信息
docker network ls列出所有 Docker 网络
docker volume ls列出所有 Docker 卷
Docker镜像制作流程
1.创建工作目录
mkdir test_docker_app
cd test_docker_app

目录结构:

test-flask-app/
├── app.py
└── requirements.txt

app.py

from flask import Flaskapp = Flask(__name__)@app.route('/')
def test():return "Test Docker!"if __name__ == "__main__":app.run(host='0.0.0.0', port=5000)

requirements.txt

flask
2.编写Dockerfile

在test-flask-app/目录下新建Dockerfile文件:

nano Dockerfile

DockerFile内容:

# 使用官方 Python 镜像作为基础镜像
FROM python:3.9-slim# 设置工作目录
WORKDIR /app# 将当前目录下的文件复制到容器中的 /app 目录
COPY . /app# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt# 暴露端口
EXPOSE 5000# 容器启动后运行的命令
CMD ["python", "app.py"]

Ctrl + O :输入文件名DockerFile
Ctrl + X :退出 nano 编辑器

3.构建镜像

在test-flask-app/目录下执行:

docker build -t test-flask-app .

其中:

  • -t my-flask-app:给镜像打标签。
  • .:表示当前目录是构建上下文。

输出:

[+] Building 23.5s (9/9) FINISHED                                                                                                                                                                                                                              docker:default=> [internal] load build definition from Dockerfile                                                                                                                                                                                                                     0.0s=> => transferring dockerfile: 372B                                                                                                                                                                                                                                     0.0s=> [internal] load metadata for docker.io/library/python:3.9-slim                                                                                                                                                                                                       7.7s=> [internal] load .dockerignore                                                                                                                                                                                                                                        0.0s=> => transferring context: 2B                                                                                                                                                                                                                                          0.0s=> [internal] load build context                                                                                                                                                                                                                                        0.0s=> => transferring context: 636B                                                                                                                                                                                                                                        0.0s=> [2/4] WORKDIR /app                                                                                                                                                                                                                                                   0.3s=> [3/4] COPY . /app                                                                                                                                                                                                                                                    0.0s=> [4/4] RUN pip install --no-cache-dir -r requirements.txt                                                                                                                                                                                                             6.9s=> exporting to image                                                                                                                                                                                                                                                   0.3s => => exporting layers                                                                                                                                                                                                                                                  0.3s => => writing image sha256:bf19d7bb90c28b356e5e4ac5e31c831fe3495c85731175740dd94352d91be009                                                                                                                                                                             0.0s => => naming to docker.io/library/test-flask-app          
4.查看镜像:
docker images
REPOSITORY                                      TAG                       IMAGE ID       CREATED          SIZE                                                                                                                                                                
test-flask-app                                    latest                    bf19d7bb90c2   20 seconds ago   136MB
5.运行容器
docker run -d -p 5000:5000 --name my-flask-container test-flask-app
  • -d:后台运行
  • -p 5000:5000:将宿主机的 5000 端口映射到容器的 5000 端口
  • –name:为容器命名
6. 测试访问
curl http://localhost:5000

打印出:

Test Docker!

或浏览器访问:http://localhost:5000

相关文章:

Docker使用小结

概念 镜像( Image ) :相当于一个 root 文件系统;镜像构建时,分层存储、层层构建;容器( Container ) :镜像是静态的定义,容器是镜像运行时的实体;…...

串口屏调试 1.0

http://wiki.tjc1688.com 先把商家的链接贴过来 淘晶驰T1系列3.2寸串口屏tft液晶屏显示屏HMI触摸屏超12864液晶屏 这是主包的型号 打开这个玩意 有十个基本的功能区 新建工程 在界面的右边,指令一定要写在page前面,这里的波特率等等什么的都可以…...

windows 环境下 python环境安装与配置

运行环境安装 第一步安装包下载 python开发工具安装包下载官网: https://www.python.org/ 根据自己的实际需求选择。 这里记录了各个版本的区别和差异。根据区别和差异选择适合自己的版本。 Windows Installer和Windows embeddable package是两种不同的软件包类…...

浅谈装饰模式

一、前言 hello大家好,本次打算简单聊一下装饰者模式,其实写有关设计模式的内容还是蛮有挑战性的,首先呢就是小永哥实力有限担心说不明白,其次设计模式是为了解决某些问题场景,在当前技术生态圈如此完善的情况下&#…...

LeetCode 270:在二叉搜索树中寻找最接近的值(Swift 实战解析)

文章目录 摘要描述题解答案题解代码分析示例测试及结果时间复杂度空间复杂度总结 摘要 在日常开发中,我们经常需要在一组有序的数据中快速找到最接近某个目标值的元素。LeetCode 第 270 题“Closest Binary Search Tree Value”正是这样一个问题。本文将深入解析该…...

WPF 3D图形编程核心技术解析

一、三维坐标系系统 WPF采用右手坐标系系统,空间定位遵循: X 轴 → 右 Y 轴 → 上 Z 轴 → 观察方向 X轴 \rightarrow 右\quad Y轴 \rightarrow 上\quad Z轴 \rightarrow 观察方向 X轴→右Y轴→上Z轴→观察方向 三维坐标值表示为 ( x , y , z ) (x, y,…...

分布式锁原理

1.锁是什么 一个线程拿到锁,另一个线程就拿不到,满足互斥性。 2.Redis的setnx实现 加锁后解锁,但是要先判断是否是当前线程持有的锁,只能释放本线程的锁。 先判断后释放,两步操作Lua实现原子性 3.为什么要给锁加过期…...

暗物质卯引力挂载技术

1、物体质量以及其所受到的引力约束(暗物质压力差) 自然界的所有物体,其本身都是没有质量的。我们所理解的质量,其实是物体球周空间的暗物质对物体的挤压,压力差。 对于宇宙空间中的单个星球而言,它的球周各处压力是相同的,所以,它处于平衡状态,漂浮在宇宙中。 对于星…...

实现三个采集板数据传送到一个显示屏的方案

实现三个采集板数据传送到一个显示屏的方案 要实现三个相同采集板的数据都传送到一个显示屏上,可行的方案: 方案:串行通信(推荐) 硬件连接: 使用RS485总线连接(适合较长距离)或使用…...

comfyui 如何优雅的从Hugging Face 下载模型,文件夹

如下图所示 使用git 下载整个仓库然后把需要的放到对应的位置...

通过user-agent来源判断阻止爬虫访问网站,并防止生成[ error ] NULL日志

一、TP5.0通过行为&#xff08;Behavior&#xff09;拦截爬虫并避免生成 [ error ] NULL 错误日志 1. 创建行为类&#xff08;拦截爬虫&#xff09; 在 application/common/behavior 目录下新建BlockBot.php &#xff0c;用于识别并拦截爬虫请求&#xff1a; <?php name…...

动态规划法:爬楼梯

假如你现在爬楼梯&#xff0c;需要n阶才能到达楼顶&#xff0c;每次可以爬1或2 台阶&#xff0c;你有多少中不同的方法可以爬到楼顶。 例如&#xff1a; 输入&#xff1a;n2 输出&#xff1a;2 //有两种方法可以到达楼顶&#xff0c;1阶1阶&#xff0c;2阶。 输入&…...

IBM BAW(原BPM升级版)使用教程第七讲

续前篇&#xff01; 一、团队 在 IBM Business Automation Workflow (BAW) 中&#xff0c;团队&#xff08;Team&#xff09; 是流程管理的关键部分&#xff0c;用于定义参与某个流程的用户、角色、组以及服务等。在团队配置中&#xff0c;有许多重要概念&#xff0c;特别是 …...

【论文阅读】Efficient and secure federated learning against backdoor attacks

Efficient and secure federated learning against backdoor attacks -- 高效且安全的可抵御后门攻击的联邦学习 论文来源问题背景TLDR系统及威胁模型实体威胁模型 方法展开服务器初始化本地更新本地压缩高斯噪声与自适应扰动聚合与解压缩总体算法 总结优点缺点 论文来源 名称…...

Java中的代理机制

目录 什么叫代理 静态代理 优缺点 优点&#xff1a; 缺点&#xff1a; 动态代理 JDK动态代理 核心类 JDK动态代理的实现 步骤 示例 特点 CGLIB动态代理 代理机制对比 总结 什么叫代理 代理模式是一种比较好理解的设计模式。简单来说就是我们使用代理对象来代替…...

Kotlin扩展函数提升Android开发效率

在Android开发中&#xff0c;Kotlin的扩展函数&#xff08;Extension Functions&#xff09;犹如一把神奇的瑞士军刀&#xff0c;它能显著提升代码简洁性和开发效率。以下是通过实战案例展示的扩展函数魔法手册&#xff1a; 一、扩展函数基础原理 // 给View添加渐显动画扩展 f…...

Jenkins linux安装

jenkins启动 service jenkins start 重启 service jenkins restart 停止 service jenkins stop jenkins安装 命令切换到自己的下载目录 直接用命令下载 wget http://pkg.jenkins-ci.org/redhat-stable/jenkins-2.190.3-1.1.noarch.rpm 下载直接安装 rpm -ivh jenkins-2.190.3-…...

加速pip下载:永久解决网络慢问题

一文教你解决 pip 下载太慢了的问题 || 下载时因为网络不好中断下载的问题 一、找到 pip 配置文件路径 1.配置文件位置&#xff1a; Windows 系统的 pip 配置文件默认不存在&#xff0c;需要手动创建&#xff0c;路径为&#xff1a; C:\Users\你的用户名\pip\pip.ini 用户目…...

WPF 触发器 Trigger

触发器 Trigger 触发器&#xff08;Trigger&#xff09;是 WPF 中的一种机制&#xff1a; 当某个条件满足时&#xff0c;自动改变控件的某些属性&#xff0c;比如颜色、大小、透明度等。 换句话说&#xff0c;就是"如果……那么就……" 的一种规则。 常见触发器类…...

Webug4.0靶场通关笔记-靶场搭建方法(3种方法)

目录 一、虚拟机绿色版本 1. 开启phpstudy 2. 访问靶场 二、Docker版本 1.拉取镜像 2.启动镜像 三、源码安装版本 1. 搭建环境 &#xff08;1&#xff09;安装PHPStudy &#xff08;2&#xff09;WeBug4.0靶场源码 &#xff08;3&#xff09;安装Navicat &#xff…...

Python核心编程深度解析:作用域、递归与匿名函数的工程实践

引言 Python作为现代编程语言的代表&#xff0c;其作用域管理、递归算法和匿名函数机制是构建高质量代码的核心要素。本文基于Python 3.11环境&#xff0c;结合工业级开发实践&#xff0c;深入探讨变量作用域的内在逻辑、递归算法的优化策略以及匿名函数的高效应用&#xff0c…...

【Web】LACTF 2025 wp

目录 arclbroth lucky-flag whack-a-mole arclbroth 看到username为admin能拿到flag 但不能重复注册存在的用户 这题是secure-sqlite这个库的问题&#xff0c;底层用的是C&#xff0c;没处理好\0字符截断的问题 &#xff08;在 Node.js 中&#xff0c;由于其字符串表示方式…...

【日撸 Java 三百行】综合任务 1

目录 Day 10&#xff1a;综合任务 1 一、题目分析 1. 数据结构 2. 相关函数基本知识 二、模块介绍 1. 初始化与成绩矩阵的构建 2. 创建总成绩数组 3. 寻找成绩极值 三、代码与测试 小结 拓展&#xff1a;关于求极值的相关算法 Day 10&#xff1a;综合任务 1 Task&…...

yocto的每个recipe都是在工作路径中完成

Yocto项目中每个Recipe的编译过程都会将源文件解压或搬运到tmp/work/下的特定工作目录,并在此完成所有构建任务。具体流程可分为以下关键步骤: 一、源码处理阶段 源码获取(do_fetch) Recipe通过SRC_URI变量指定源码来源(如Git仓库、HTTP下载或本地文件)。这些文件会被下载…...

玩转Docker | 使用Docker部署DailyTxT日记工具

玩转Docker | 使用Docker部署DailyTxT日记工具 一、DailyTxT介绍DailyTxT简介DailyTxT 特点二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署DailyTxT服务下载DailyTxT镜像编辑部署文件创建容器检查容器状态检查服务端口安全设置四、访问DailyTxT服务访问D…...

初等数论--欧拉定理及证明

0. 证明前置知识 同余类&#xff08;剩余类&#xff09; r n ‾ { x ∣ x m n r , m ∈ Z } \overline{r_n} \{ x| xmnr,m \in Z\} rn​​{x∣xmnr,m∈Z} r n ‾ \overline{r_n} rn​​表示模 n n n后余 r r r的同余类&#xff08;剩余类&#xff09; 比如 2 5 ‾ { ⋯…...

Oracle非归档模式遇到文件损坏怎么办?

昨天夜里基地夜班的兄弟&#xff0c;打电话说有个报表库连不上了&#xff0c;赶紧起来连上VPN查看一下&#xff0c;看到实例宕机了&#xff0c;先赶紧startup起来。 1.查看报错信息 环境介绍&#xff1a;Redhat 6.9 Oracle 11.2.0.4 No Archive Mode 查看alert log 关键报…...

机器人领域和心理学领域 恐怖谷 是什么

机器人领域和心理学领域 恐怖谷 是什么 恐怖谷是一个在机器人领域和心理学领域备受关注的概念,由日本机器人专家森政弘于1970年提出。 含义 当机器人与人类的相似度达到一定程度时,人类对它们的情感反应会突然从积极变为消极,产生一种毛骨悚然、厌恶恐惧的感觉。这种情感…...

树莓派4的v4l2摄像头(csi)no cameras available,完美解决

根据2025年最新技术文档和树莓派官方支持建议&#xff0c;no cameras available错误通常由驱动配置冲突或硬件连接问题导致。以下是系统化解决方案&#xff1a; 一、核心修复步骤 强制禁用传统驱动 sudo nano /boot/firmware/config.txt确保包含以下配置&#xff08;2025年新版…...

每日一题:两个仓库的最低配送费用问题

文章目录 两个仓库的最低配送费用问题一、问题描述二、解题思路&#xff08;一&#xff09;初始假设&#xff08;二&#xff09;差值定义&#xff08;三&#xff09;选择最优&#xff08;四&#xff09;计算答案 三、代码实现四、代码分析&#xff08;一&#xff09;输入处理&a…...