Docker 入门版

目录

1. 关于Docker

2. Dockr run命令中常见参数解读

3. Docker常见命令

4. Docker 数据卷

5. Docker本地目录挂载

6. 自定义镜像

Dockerfile 语法

自定义镜像模板

Demo

7. Docker网络


1. 关于Docker

在docker里面下载东西,就是相当于绿色面安装板,说人话就是docker里面会存有你想要下载软件的一切文件,包括环境,配置等,这些东西在doker里面称为镜像。

而docker里面常说的容器就是只运行镜像时,会把他和其他运行的镜像隔离开,因为不同的软件运行起来环境是很有可能不一样的,这样就可以避免冲突,这就是容器(容器是模拟了一个计算机。容器内部有自己独立的网络,独立的内存,独立的文件系统,模拟的没有那么完整,但是很像)。

博主举例:

在电脑上的软件商城下载了一个qq,然后打开了三个qq登录了三个账号。

这里软件商城就是镜像仓库,下载下来的不用安装可以直接用的qq就是镜像,打开了三个qq运行就是容器里面的三个进程

2. Dockr run命令中常见参数解读

-p:前面是宿主机端口,后面是容器内端口(宿主机端口是不一样的,多个映射时)

3. Docker常见命令

docker pull:下载镜像

docker images(image 镜像):查看所有镜像

docker rmi:删除镜像

自己构建镜像:先创建docker file,然后docker build来构建,然后打包好去部署的话,就要交给运维。有两种方式给他们,第一就是docker save保存到本地,变成一个压缩文件,然后同事就可以docker load加载到他的镜像里面(用的少)。第二种方式就是docker push推到镜像仓库(可以是公用仓库也可以是公司私有的仓库),然后同事就可以docker pull拉取下来。

docker run:创建并运行容器(这个命令是自动化的,如果发现镜像不存在就会去 镜像仓库拉取,然后再自动创建容器然后运行一条龙服务,然后容器就属于运行中的状态了,然后如果想把容器停止下来就可以docker stop,但是注意,这里停止的是容器内的一个进程(比如停止了容器里面的 一个mysql进程)但是容器还在,想重新启动mysql就用docker start启动容器内部停掉的进程。然后我怎么知道这个容器是否是启动的状态呢,就可以用docker ps查看当前容器的运行情况。删除容器就可以用docker rm。在容器运行中可以docker logs(-f持续输出日志)查看容器运行日志。还可以通过docker exec(-it就是指添加一个可交互的终端的意思:docker exec -it mysql bash就是进入了一个mysql的容器,添加了交互终端,并且是通过bash命令行的方式进行交互)进入到容器的内部,因为容器是隔离空间,本来我们是没有办法访问的,但是有时候需要对容器的修改,我们就可以通过这个命令进入容器。)

PS:

简化上面的书写:

可以去创建别名

vi ~/.bashrc

前面我我们更改的别名,后面是原始的写法

然后更改让他生效:

source ~/.bashrc

4. Docker 数据卷

一旦这个绑定产生,只需要在/html/_data目录下创建一个文件,就会自动跑到容器内的目录里面,反过来容器内的目录下做修改,宿主机的目录里这个文件也会修改。(双向映射)

volume:数据卷

然后到我们的需求

PS:挂载一定是在创建容器的时候才可以进行(同时发现,我们也不用调用docker volume create)

查看数据卷是否创建成功

查看这个卷的详细信息

验证之前的信息

然后我们现在来进行需求,改这个文件:

直接vscode打开要修改的宿主机里面的文件,就可以同步修改了容器内的数据!

有了数据卷,以后再想要修改容器内的数据,就不用进入容器内修改了!(因为容器内初始只会配置关于该镜像运行的内容,就比如vi就可能进去都没有就很麻烦,所以需要数据卷!)

5. Docker本地目录挂载

查mysql的时候发现会默认创建一个数据卷——匿名卷

他所挂载的目录(destination)是mysql的数据存储目录

6. 自定义镜像

好处是可以共享比较基础的层

就比如:

Dockerfile 语法

自定义镜像模板

Demo

运行容器

7. Docker网络

现在有两个网桥了一个是默认的一个是新增的

上面这种方式是容器已经存在了,让他去连一个网桥,现在我们来让容器运行的时候默认去连网桥

但是注意,这样就只有一个网桥了,不会加入默认的网桥了

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

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

相关文章

python之生成器表达式

背景 生成器表达式,整个表达式都是另一个函数的唯一入参,则不需要带括号;若他只是其中一个参数,则需要圆括号包裹。 演示

响应式流和reactor框架进阶

响应式流和reactor框架进阶 响应式流创建、转换、处理 本文档主要介绍在响应式编程中如何从流中获取数据并处理。 前提条件 假设您已经能掌握Java基础、Maven使用、Lamda表达式、响应式编程等基础。 如何获取流中数据 🌏 说明 1、不要试图从流中获取数据出来&a…

MMUNet:形态学特征增强网络在结肠癌病理图像分割中的应用

MMUNet: Morphological feature enhancement network for colon cancer segmentation in pathological images. 发表在:Biomedical Signal Processing and Control2024--影响因子:3.137 南华大学的论文 论文地址:main.pdf (sciencedirecta…

地理信息科学中的大数据挑战

在信息化爆炸的时代,地理信息科学(GIScience)正经历着前所未有的变革,其中,地理空间大数据的涌现为科学研究与应用带来了前所未有的机遇与挑战。作为地理信息与遥感领域的探索者,本文旨在深入剖析地理空间大…

找不到steam_api64.dll,无法继续执行的原因及解决方法

电脑已经成为我们生活中不可或缺的一部分。然而,在使用电脑的过程中,我们经常会遇到一些常见的问题,其中之一就是找不到某个特定的动态链接库文件,比如steamapi64.dll。这个问题可能会导致某些应用程序无法正常运行,给…

音视频开发—音频相关概念:数模转换、PCM数据与WAV文件详解

文章目录 前言1.模拟数字转换(ADC)1.1ADC的关键步骤: 2.数字模拟转换(DAC)2.1DAC 的基本流程包括: 3.PCM数据3.1PCM 数据的关键要素包括: 4.WAV文件4.1 WAV的构成4.2WAV文件的标准块结构4.3WAV的…

kettle从入门到精通 第六十五课 ETL之kettle 执行动态SQL语句,轻松实现全量增量数据同步

本次课程的逻辑是同步t1表数据到t2表,t1和t2表的表机构相同,都有id,name,createtime三个字段。 CREATE TABLE t1 (id bigint NOT NULL AUTO_INCREMENT,name varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,cr…

View->Bitmap缩放到自定义ViewGroup的任意区域(Matrix方式绘制Bitmap)

Bitmap缩放和平移 加载一张Bitmap可能为宽高相同的正方形,也可能为宽高不同的矩形缩放方向可以为中心缩放,左上角缩放,右上角缩放,左下角缩放,右下角缩放Bitmap中心缩放,包含了缩放和平移两个操作&#xf…

数据整理操作及众所周知【数据分析】

各位大佬好 ,这里是阿川的博客,祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 Python 初阶 Python–语言基础与由来介绍 Python–…

Opencv 色彩空间

一 核心知识 色彩空间变换; 像素访问; 矩阵的、-、*、、; 基本图形的绘制 二 颜色空间 RGB:人眼的色彩空间; OpenCV默认使用BGR; HSV/HSB/HSL; YUV(视频); 1 RGB 2 BGR 图像的多种属性 1 访问图像(Ma…

Pytorch 笔记

执行下面这段代码后,为什么返回的是 2 ? vector torch.tensor([7, 7]) vector.shape为什么返回的是 torch.Size([2])? 当你创建一个PyTorch张量时,它会记住张量中元素的数量和每个维度的大小。在你的代码中,torch.t…

Redis 线程模型

Redis 线程模型 背景简介Redis 单线程客户端发起 Redis 请求命令的工作原理单线程面临的挑战及问题 Redis 多线程Redis v4.0 多线程命令Redis v6.0 多线程网络模型 总结 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术…

LangChain学习之 Question And Answer的操作

1. 学习背景 在LangChain for LLM应用程序开发中课程中,学习了LangChain框架扩展应用程序开发中语言模型的用例和功能的基本技能,遂做整理为后面的应用做准备。视频地址:基于LangChain的大语言模型应用开发构建和评估。 2. Q&A的作用 …

了解VS安全编译选项GS

缓冲区溢出攻击的基本原理就是溢出时覆盖了函数返回地址,之后就会去执行攻击者自己的函数; 针对缓冲区溢出时覆盖函数返回地址这一特征,微软在编译程序时使用了安全编译选项-GS; 目前版本的Visual Studio中默认启用了这个编译选项…

Java-----String类

1.String类的重要性 经过了C语言的学习,我们认识了字符串,但在C语言中,我们表示字符串进行操作的话需要通过字符指针或者字符数组,可以使用标准库中提供的一系列方法对字符串的内容进行操作,但这种表达和操作数据的方…

Go语言交叉编译

Golang 支持交叉编译, 在一个平台上生成然后再另外一个平台去执行。 以下面代码为例 build ├── main.go ├── go.mod main.go内容 package mainimport "fmt"func main() {fmt.Println("hello world") }windows系统上操作 1.cmd窗口编译…

【OCPP】ocpp1.6协议第4.2章节BootNotification的介绍及翻译

目录 4.2、BootNotification-概述 Boot Notification 消息 BootNotification 请求消息 BootNotification 响应消息 使用场景 触发 BootNotification 的条件 实现示例 构建请求消息 发送请求并处理响应 小结 4.2、BootNotification-原文译文 4.2.1、被中央系统接受之…

ios v品会 api-sign算法

vip品会 api-sign算法还原 ios入门案例 视频系列 IOS逆向合集-前言哔哩哔哩bilibili 一、ios难度与安卓对比 这里直接复制 杨如画大佬的文章的内容: ios难度与安卓对比 很多人说ios逆向比安卓简单,有以下几个原因 1 首先就是闭源,安卓开源…

无人售货机零售业务成功指南:从市场分析到创新策略

在科技驱动的零售新时代,无人售货机作为一种便捷购物解决方案,正逐步兴起,它不仅优化了消费者体验,还显著降低了人力成本,提升了运营效能。开展这项业务前,深入的市场剖析不可或缺,需聚焦消费者…

ch4网络层---计算机网络期末复习(持续更新中)

网络层概述 将分组从发送方主机传送到接收方主机 发送方将运输层数据段封装成分组 接收方将分组解封装后将数据段递交给运输层网络层协议存在于每台主机和路由器上 路由器检查所有经过它的IP分组的分组头 注意路由器只有3层(网络层、链路层、物理层) 网络层提供的服务 一…