从0到1入门Docker

一、快速入门

Docker run命令中的常见参数

  • -d:让容器后台运行
  • --name:给容器命名(唯一)
  • -e:环境变量
  • -p:宿主机端口映射到容器内端口
  • 镜像名称结构:Repository :TAG(镜像名:版本号)

二、Docker基础

1.常见命令

Docker最常见的命令就是操作镜像,容器的命令

2.数据卷

(1)介绍

数据卷(volume)是一个虚拟目录,是容器内目录宿主机目录之间映射的桥梁,方便我们操作容器内文件,或者方便迁移容器产生的数据

(2)数据卷常见命令

(3)如何挂载数据卷

创建容器时,使用

docker run -v 数据卷名:容器内目录

完成挂载,在容器创建时,如果发现挂载的数据卷不存在时,会自动创建

(4)本地目录挂载

docker run -v 本地目录:容器内目录

可以完成本地目录挂载,本地目录必须以“ ”或“ ./ ”开头,如果直接以名称开头,会被识别为数据卷而非本地目录

3.自定义镜像

镜像就是包含了应用程序,程序运行的系统函数库,运行配置等文件的文件包。构建镜像的过程其实就是把上述文件分层打包的过程。

(1)镜像结构

(Layer)

添加安装包,依赖,配置等,每次操作都形成新的一层

基础镜像(BaseImage)

应用依赖的系统函数库,环境,配置,文件等

入口(Entrypoint)

镜像运行入口,一般是程序启动的脚本和参数

(2)Dockerfile

Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来描述要执行什么操作来构建镜像。将来Docker可以根据Dockerfile帮我们构建镜像,常见指令如下:

示例:

当编写好了Dockerfile,可以利用下面命令来构建镜像:

docker build -t 镜像名 Dockerfile目录  .

其中:

  • -t:是给镜像起名,格式依然是repository:tag,不指定tag时,默认为latest
  • :是指定Dockerfile所在目录,如果就在当前目录,则指定为“.”

4.容器网络互连

默认情况下,所有容器都是以bridge方式连接到Docker的一个虚拟网桥上:

加入自定义网络的容器才可以通过容器名互相访问,Docker的网络操作命令如下:

三、项目部署

1.Docker Compose

Docker Compose通过一个单独的docker-compose.yml模板文件(YAML文件)来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署

示例:

version: "3.8"services:mysql:image: mysqlcontainer_name: mysqlports:- "3306:3306"environment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: 123volumes:- "./mysql/conf:/etc/mysql/conf.d"- "./mysql/data:/var/lib/mysql"- "./mysql/init:/docker-entrypoint-initdb.d"networks:- hm-nethmall:build: context: .dockerfile: Dockerfilecontainer_name: hmallports:- "8080:8080"networks:- hm-netdepends_on:- mysqlnginx:image: nginxcontainer_name: nginxports:- "18080:18080"- "18081:18081"volumes:- "./nginx/nginx.conf:/etc/nginx/nginx.conf"- "./nginx/html:/usr/share/nginx/html"depends_on:- hmallnetworks:- hm-net
networks:hm-net:name: hmall

2.命令格式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/72467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

接口自动化入门 —— Jmeter实现在接口工具中关联接口处理方案

1. JMeter 接口关联处理的核心概念 接口关联是指在多个接口请求之间共享数据,例如将一个接口的返回值作为另一个接口的输入参数。常见的场景包括: 使用登录接口返回的 Token 作为后续接口的认证信息。 将一个接口返回的 ID 作为另一个接口的请求参数。…

Flink-学习路线

最近想学习一下Flink,公司的实时需求还是不少的,因此结合ai整理了一份学习路线,记录一下。 当然,公司也有Scala版本Flink框架,也学习了一下。这里只说Java版本 1. Java基础 目标: 掌握Java编程语言的基础知识。 内容…

ranger集成starrock报错

org.apache.ranger.plugin.client.HadoopException: initConnection: Unable to connect to StarRocks instance, please provide valid value of field : {jdbc.driverClassName}.. com.mysql.cj.jdbc.Driver. 可能的原因 JDBC 驱动缺失:运行环境中没有安装 MySQL …

python Jsonpath表达式语法取值

python Jsonpath 语法规则: 演示数据:{"status":"0","msg":"成功","data": [ {"foo1": "bar1"},{"foo1": "bar2"}]} 根节点:$ $.status $.…

Blender-MCP服务源码2-依赖分析

Blender-MCP服务源码2-依赖分析 有个大佬做了一个Blender-MCP源码,第一次提交代码是【2025年3月7号】今天是【2025年月15日】也就是刚过去一周的时间,所以想从0开始学习这个代码,了解一下大佬们的开发思路 1-核心知识点 from mcp.server.fas…

反射(第三篇)、代理模式、静态代理和动态代理、InvocationHandler实际应用

DAY11.3 Java核心基础 反射(第三篇) 前两篇我们学习了反射的概念和基本操作 实际开发中,反射应用于那里? 动态代理 java中的动态代理就是一个重要的作用 代理模式 代理模式是java中常用的设计模式 指的是在处理一个业务逻辑…

Unity 封装一个依赖于MonoBehaviour的计时器(上) 基本功能

灵感来自下面这本书的协程部分,因此我就自己尝试写了一个 我的新书Unity3D游戏开发(第3版) | 雨松MOMO程序研究院 如果你不知道什么是协程:unity保姆级教程之协同程序_unity协同-CSDN博客 一句话概括:协程就是单线程的异步操作,其作用于Unity的主线程 1…

数学建模 第一节

目录​​​​​​ 前言 一 优化模型的类型 二 线性规划1 线性规划2 三 0-1规划 总结 前言 数学建模主要是将问题转化为模型,然后再以编程的形式输出出来 算法都知道,数学建模也需要用到算法,但是不是主要以编程形式展示,而是…

Vulkan视频解码decode显示display之同步

在ReleaseDisplayedPicture函数中消耗图片资源并且显示display完成,设置两个标志m_hasConsummerSignalFence true 和m_hasConsummerSignalSemaphore true virtual int32_t ReleaseDisplayedPicture(DecodedFrameRelease** pDecodedFramesRelease, uint32_t nu…

网络空间安全(32)Kali MSF基本介绍

前言 Metasploit Framework(简称MSF)是一款功能强大的开源安全漏洞检测工具,被广泛应用于渗透测试中。它内置了数千个已知的软件漏洞,并持续更新以应对新兴的安全威胁。MSF不仅限于漏洞利用,还包括信息收集、漏洞探测和…

设计模式学习记录

设计模式23种 创建型抽象工厂模式工厂模式生成器模式原型模式单例模式 结构型适配器模式桥接模式组合模式装饰模式外观模式享元模式代理模式 行为型责任链模式命令模式解释器模式迭代器模式中介者模式备忘录模式观察者模式状态模式策略模式模版方法模式访问者模式 创建型 与对…

2.5 python接口编程

在现代软件开发的复杂生态系统中,不同系统、模块之间的交互协作至关重要。接口编程作为一种关键机制,定义了组件之间的通信规范与交互方式。Python 凭借其卓越的灵活性、丰富的库资源以及简洁易读的语法,在接口编程领域占据了重要地位&#x…

mesh开发解析

开源的Mesh网络协议栈及相关项目: 1.B.A.T.M.A.N.(Better Approach to Mobile Ad-hoc Networking)• 简介:B.A.T.M.A.N.是一种用于多跳自组织网络的路由协议,适用于无线Mesh网络。它通过优化数据传输路径,确保网络的高可靠性和动…

PyTorch PINN实战:用深度学习求解微分方程

在人工智能与计算数学的交汇点,物理信息神经网络(Physics-Informed Neural Networks,PINN)正引领着一场求解微分方程的革命。传统上,微分方程是描述自然现象和工程问题中各种关系的重要工具,但其求解往往依…

【WiFi 7核心技术及未来挑战】

作为刚刚开始从事这一领域的人,浅浅学习了一下WiFi 7(IEEE 802.11be)。Wi-Fi 7发展迅速,提供前所未有的速度、更低的延迟和更高的可靠性。但从频谱政策到能效挑战,再到成本,仍有许多问题亟待解决。 Wi-Fi 7…

Oracle Linux Server 7.9安装fail2ban

yum search oracle-epel-release yum install oracle-epel-release-el7 search fail2ban yum install fail2ban nano /etc/fail2ban/jail.d/00-firewalld.conf # defalut这里是设定全局设置,如果下面的监控没有设置就以全局设置的值设置。 [DEFAULT] # 用于指定哪…

目标在哪里?——寻找人生的意义与方向

在职场中,许多人都会经历这样的困惑:工作看似顺利,却逐渐失去了成就感和成长感。一位在500强企业工作的学员就遇到了这样的问题。她曾考虑过转型做培训,但苦于找不到明确的切入点,对未来的目标感到迷茫。她不禁问自己&…

C++类与对象——拷贝构造与运算符重载

拷贝构造函数和赋值运算符重载就是C类默认六个函数之二。 拷贝构造函数: 如果⼀个构造函数的第⼀个参数是自身类类型的引用,且任何额外的参数都有默认值,则此构造函数 也叫做拷贝构造函数,也就是说拷贝构造是⼀个特殊的构造函数…

破碎的誓言

破碎的誓言 在秋风的呢喃中,落叶轻叹, 昔日的誓言,如烟消散。 你的眼眸,曾是我星辰的指引, 如今,却成了最深的迷惘。 欺骗的利刃,刺穿了信任的堡垒, 我的心,如裂开…

AD画板学习

AD画板 01 课程简介及学习目标 (1)能熟练的新建项目文件、原理图文件、PCB文件且修改文件名,并知道文件保存的位置; (2)会设置原理图编辑器的工作环境,会自底向上绘制层次原理图; …