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

Docker的基础使用

  • Docker的基础使用

  • Docker 是一个开放平台,用于开发、运输和运行应用程序。Docker 允许你将应用程序与基础架构分离,从而可以像管理应用程序一样快速交付软件。以下是 Docker 的详细使用指南:

安装 Docker

  1. 下载 Docker :
    根据你的操作系统下载 Docker。Docker 支持 Windows、macOS 和各种 Linux 发行版。
  • 在 Docker 官网下载对应操作系统的安装包: Docker Download
  1. 安装 :
    安装下载的 Docker 应用程序。安装过程可能会要求你重启计算机。
  2. 验证安装 :
    打开终端或命令提示符,输入以下命令以验证 Docker 是否正确安装:
docker --version

基本 Docker 命令

  1. 运行 Hello World 容器 :
    运行以下命令,Docker 将从 Docker Hub 下载一个测试镜像,并运行一个容器:
docker run hello-world
  1. 列出容器 :
  • 列出正在运行的容器:
docker ps
  • 列出所有容器(包括未运行的):
docker ps -a
  1. 拉取镜像 :
    从 Docker Hub 拉取一个镜像:
docker pull [image_name]
  1. 运行容器 :
    从镜像运行一个新容器:
docker run -d -p [host_port]:[container_port] [image_name]
  1. 进入容器 :
    进入正在运行的容器:
docker exec -it [container_id] /bin/bash
  1. 构建 Docker 镜像 :
    使用 Dockerfile 构建新的 Docker 镜像:
docker build -t [image_name] .
  1. 停止容器 :
    停止正在运行的容器:
docker stop [container_id]
  1. 移除容器 :
    删除容器:
docker rm [container_id]
  1. 移除镜像 :
    删除镜像:
docker rmi [image_name]

使用 Dockerfile

Dockerfile 是一个文本文件,包含了一系列的指令,用于定义如何构建一个 Docker 镜像。

例子:

# 使用官方 Python 运行时作为父镜像
FROM python:3.7-slim# 设置工作目录为 /app
WORKDIR /app# 将当前目录内容复制到位于 /app 的容器中
COPY . /app# 安装 requirements.txt 中指定的任何所需包
RUN pip install --trusted-host pypi.python.org -r requirements.txt# 使端口 80 可供此容器外的环境使用
EXPOSE 80# 定义环境变量
ENV NAME World# 在容器启动时运行 app.py
CMD ["python", "app.py"]

注意事项

  • 数据持久化 :
    Docker 容器是临时性的。当容器被删除时,保存在其中的数据也会丢失。要持久化数据,可以使用 Docker 卷(volumes)或者绑定挂载(bind mounts)。
  • 容器通信 :
    Docker 容器可以彼此通信,可以通过 Docker 网络功能来实现。
  • 安全 :
    注意不要在 Docker 容器中运行不安全或不受信任的应用程序。默认情况下,容器以 root 用户身份运行。
  • 资源限制 :
    可以限制容器使用的资源,例如 CPU、内存。
  • Docker Compose :
    对于更复杂的应用程序,建议使用 Docker Compose 来管理多个容器。

Docker 的这些功能使其成为一个非常强大的工具,用于开发、测试和部署应用程序。通过 Docker,可以确保应用程序在任何环境中都能以相同的方式运行。

相关文章:

Docker的基础使用

Docker的基础使用 Docker 是一个开放平台,用于开发、运输和运行应用程序。Docker 允许你将应用程序与基础架构分离,从而可以像管理应用程序一样快速交付软件。以下是 Docker 的详细使用指南: 安装 Docker 下载 Docker : 根据你的操作系统…...

Sass(Scss)、Less的区别与选择 + 基本使用

在前端开发中,CSS预处理器成为了提高样式表开发效率的重要工具。Sass(以及其语法Scss)和Less是两个最为流行的CSS预处理器,它们在语法、功能和用法上存在一些差异,因此在选择使用时需要考虑多个因素。 1. Sass 和 Les…...

GPT Zero 是什么?

from https://openaigptguide.com/gptzero/ 在人工智能技术飞速发展的今天,人们对于文字内容的准确性和可信度要求越来越高。例如在学术研究领域,防止抄袭和造假是非常重要的。而对于普通用户而言,辨别哪些内容是由人工智能生成的&#xff0…...

c++学习笔记-提高篇-案例2-员工分组(vector/multimap)

一、案例描述 公司今天招聘10个员工(ABCDEFGHIJ),10名员工进入公司后,需要指派员工在哪个部门工作员工信息:姓名 工资组成;部门分为:策划、美术、研发随机给10名员工分配部门和工作通过multimap进行信息插…...

TrustZone之问答

以下问题有助于测试您的知识。 在Arm架构中,安全状态和物理地址空间分别是什么? 在Arm架构中,安全状态分为安全状态和非安全状态。物理地址空间分为安全物理地址空间和非安全物理地址空间。 在每个异常级别中,是什么确定处理器处于…...

vue3中新增的组合式API:ref、reactive、toRefs、computed、watch、provide/inject、$ref

在 Vue3 中,组合式 API 是一种新的编程模式,它允许你更灵活地组织和重用代码。组合式 API 主要包括以下几个部分: ref:用于创建响应式数据。reactive:用于创建一个响应式对象。toRefs:将一个响应式对象转换…...

Flask 密码重设系统

Flask 密码重设系统【源码来自编程浪子Flask点餐小程序】 web/templates/user/reset_pwd.html {% extends "common/layout_main.html" %} {% block content %} {% include "common/tab_user.html" %} <div class"row m-t user_reset_pwd_wrap&q…...

HarmonyOS4.0开发应用(四)【ArkUI状态管理】

ArkUI状态管理 分为以下四个: StateProp和LinkProvide和ConsumeObserved和ObjectLink State 相当于vue中data()内定义的属性变量&#xff0c;相当于react中useState()的使用,即绑定在视图上的响应式变量&#xff0c;可动态更新~ Tip: 标记的变量必须初始化&#xff0c;不可为空…...

JS常见正则表达式写法(附案例)

正则表达式方法示例: 1. test方法解析&#xff0c;test判断正则是否在字符串中出现过&#xff0c;如果出现返回true&#xff0c;如果没出现返回false。 let str hello world; let ret1 /e/.test(str); // true let ret2 /q/.test(str); // false 如&…...

go语言,ent库与gorm库,插入一条null值的time数据

情景介绍 使用go语言&#xff0c;我需要保存xxxTime的字段至数据库中&#xff0c;这个字段可能为空&#xff0c;也可能是一段时间。我采取的是统一先赋值为空&#xff0c;若有需要&#xff0c;则再进行插入&#xff08;需要根据另一个字段判断是否插入&#xff09; 在我的数据…...

Java EasyExcel 导入代码

Java EasyExcel 导入代码 导入方法 /*** 仓库库位导入** param req* param res* param files* throws Exception*/RequestMapping(value {"/import/line_store_locs"}, method {RequestMethod.POST})ResponseBodypublic void importStoreLoc(HttpServletRequest …...

2024,5G-A风起,中兴通讯破浪

对于通信圈而言&#xff0c;2024年最关键的里程碑&#xff0c;当属3GPP R18版本即将冻结。作为5G国际标准化组织&#xff0c;3GPP的意义是推动成员公司、工作组和技术规范的研究&#xff0c;让5G发展更有章法。 放眼整个5G技术的演进&#xff0c;其实大致分为两个阶段。第一阶段…...

SuperMap Hi-Fi 3D SDK for Unity矢量面贴地贴模型

作者&#xff1a;kele 一、背景 SuperMap Hi-Fi 3D SDK&#xff08;2023 11i&#xff09; for Unity推出新功能&#xff1a;支持矢量面同时贴地形图层和模型图层&#xff0c;并且能实现数据点击查询属性、更改初始填充颜色、初始边框线颜色、选中填充颜色、选中边框线颜色、控…...

【DB2】Maxlocks和防止锁升级

数据库在对行操作的时候&#xff0c;为了避免多个作业互相覆盖影响数据准确性&#xff0c;在进行操作&#xff08;尤其是写操作&#xff09;的时候会上锁&#xff0c;同一时间只有一个作业可以修改数值 对行上锁&#xff0c;为了记录锁的信息&#xff0c;所以会占用一定的内存…...

网工内推 | 网络服务工程师,HCIE认证优先,带薪年假,年终奖

01 高凌信息 招聘岗位&#xff1a;服务工程师&#xff08;珠海&#xff09; 职责描述&#xff1a; 1、负责华为数通&#xff08;交换机、路由器&#xff09;、IT&#xff08;服务器、存储&#xff09;等任一或多个产品领域的项目实施交付&#xff1b; 2、独立完成华为数通&…...

​TrustZone之可信固件

Trusted Firmware是Armv8-A设备的安全世界软件的开源参考实现。Trusted Firmware为SoC开发人员和OEM提供了一个符合相关Arm规格&#xff08;包括TBBR和SMCC&#xff09;的参考Trusted代码库。 以下图表显示了Trusted Firmware的结构&#xff1a; SMC调度程序处理传入的SMC。SMC…...

Visual Studio 2013 中创建一个基于 Qt 的动态链接库:并在MFC DLL程序中使用

在本地已经安装好 Qt 的情况下&#xff0c;按照以下步骤在 Visual Studio 2013 中创建一个基于 Qt 的动态链接库&#xff1a; 一、新建 Qt 项目&#xff1a; 在 Visual Studio 中&#xff0c;选择 “文件” -> “新建” -> “项目…”。在 “新建项目” 对话框中&#…...

云计算:OpenStack 配置云主机实例的资源实现内网互通

目录 一、实验 1. 环境 2.配置项目及用户 3.配置规格实例与镜像 4.配置VPC 5. 配置安全组 6. 创建云主机 cs_01 &#xff08;cirros系统&#xff09; 7.创建云主机 cs_02 &#xff08;cirros系统&#xff09; 一、实验 1. 环境 &#xff08;1&#xff09;宿主机 表1…...

Android原生实现单选

六年前写的一个控件&#xff0c;一直没有时间总结&#xff0c;趁年底不怎么忙&#xff0c;整理一下之前写过的组件。供大家一起参考学习。废话不多说&#xff0c;先上图。 一、效果图 实现思路使用的是radioGroup加radiobutton组合方式。原理就是通过修改RadioButton 的backgr…...

为什么需要对数值类型的特征做归一化?

对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内。最常用的方法有以下两种&#xff1a; &#xff08;1&#xff09;线性函数归一化&#xff08;Min-Max Scaling&#xff09; 它对原始数据进行线性变换&#xff0c;使结果映射到【0,1】的范围&…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释

以Module Federation 插件详为例&#xff0c;Webpack.config.js它可能的配置和含义如下&#xff1a; 前言 Module Federation 的Webpack.config.js核心配置包括&#xff1a; name filename&#xff08;定义应用标识&#xff09; remotes&#xff08;引用远程模块&#xff0…...

人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型

在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重&#xff0c;适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解&#xff0c;并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...