docker 存储 网络 命令
文章目录
- 1 docker存储
- 1.1 目录挂载
- 2.1卷映射
- 2.1.1卷映射和目录挂载的区别
- 2.1.2卷映射的使用
- 2 docker网络
- 2.1查看docker的默认网络
- 2.2查看容器的IP
- 2.3容器互通
- 2.4自定义网络
- 2.4.1 创建自定义网络
- 2.4.2创建容器的时候加入到自定义的网络
- 2.4.3使用域名进行容器之间的访问
- 2.4.4redis主从同步集群
- 2.4.4.1启动redis主节点容器
- 2.4.4.2启动redis从节点容器
1 docker存储
1.1 目录挂载
目录挂载的作用就好像是U盘,盘符里面的内容和电脑里面展示的是一样的。如果容器挂了,那么重启开启容器并且指定原来的盘符映射到容器就可以了。
- -d:后台运行
- -p:主机port:容器port。这样外部就可以访问档容器了
- –name:指定容器的名字
- -v:主机目录:容器目录。这样就会把容器里面的数据保存到主机了,即使容器崩了,也木事。
[root@root ~]# docker run -d -p 80:80 --name mynginx -v /app/nghtml:/usr/share/nginx/html nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
09f376ebb190: Already exists
5529e0792248: Already exists
9b3addd3eb3d: Already exists
57910a8c4316: Already exists
7b5f78f21449: Already exists
b7923aa4e8a6: Already exists
785625911f12: Already exists
Digest: sha256:0f04e4f646a3f14bf31d8bc8d885b6c951fdcf42589d06845f64d18aec6a3c4d
Status: Downloaded newer image for nginx:latest
7236550f01944f5bcf235404fc455a46e986cbc879a764d054a08b5d0d92d0a2
[root@root ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7236550f0194 nginx "/docker-entrypoint.…" About a minute ago Up About a minute 0.0.0.0:80->80/tcp, :::80->80/tcp mynginx
[root@root ~]#
2.1卷映射
2.1.1卷映射和目录挂载的区别
若将nginx配置文件进行目录挂载,那么会启动报错nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)。因为目录挂载容易会以主机的目录为主,首先进行加载。
如果在容器启动就进行加载的文件,进行卷映射。卷映射会在容器启动的时候将启动的配置文件同步到主机的卷中
[root@root ~]# docker run -d -p 88:80 --name app01 -v /app/nghtml:/usr/share/nginx/htm -v /app/nghtml:/etc/nginx nginx
45d51b3d7733481ad6deb7c5d7321915ba867850021b6e3eeed67bfe5437a654
[root@root ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
45d51b3d7733 nginx "/docker-entrypoint.…" 12 seconds ago Exited (1) 12 seconds ago app01
7236550f0194 nginx "/docker-entrypoint.…" 20 minutes ago Up 20 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp mynginx
[root@root ~]# docker logs 45d51b3d7733
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf is not a file or does not exist
/docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2024/06/05 01:44:31 [emerg] 1#1: open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)
nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)
[root@root ~]#
2.1.2卷映射的使用
删除容器卷不会删除
[root@root ~]# docker run -d -p 89:80 -v /app/nghtml:/usr/share/nginx/html -v ngconfig:/etc/nginx --name app02 nginx
514d71e9fa6b5e96442c04a5ea69401e73102191329647c728bf92d6d5e334c7
[root@root ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
514d71e9fa6b nginx "/docker-entrypoint.…" 4 seconds ago Up 4 seconds 0.0.0.0:89->80/tcp, :::89->80/tcp app02
7236550f0194 nginx "/docker-entrypoint.…" 34 minutes ago Up 34 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp mynginx
[root@root ~]#
查看卷的位置:/var/lib/docker/volumes/ngconfig(卷名)docker默认目录
[root@root ~]# cd /var/lib/docker/volumes/ngconfig(卷名)
[root@root ngconfig]# ls
_data
[root@root ngconfig]# cd _data/
[root@root _data]# ls
conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
[root@root _data]#
[root@root _data]# docker volume ls 查看所有卷的列表
DRIVER VOLUME NAME
local ngconfig
[root@root _data]#
查看某个卷的详情
[root@root _data]# docker volume inspect ngconfig (卷名)
[{"CreatedAt": "2024-06-05T09:57:51+08:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/ngconfig/_data","Name": "ngconfig","Options": null,"Scope": "local"}
]
[root@root _data]#
2 docker网络
docker在安装之后就会有一个默认网络(docker0),容器在启动之后就会加入这个默认的安排
2.1查看docker的默认网络
[root@root _data]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:16:3e:06:4d:35 brd ff:ff:ff:ff:ff:ffinet 172.28.216.6/20 brd 172.28.223.255 scope global dynamic eth0valid_lft 315352185sec preferred_lft 315352185secinet6 fe80::216:3eff:fe06:4d35/64 scope link valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:e1:74:a5:bf brd ff:ff:ff:ff:ff:ffinet 172.17.0.1/16 brd 172.17.255.255 scope global docker0valid_lft forever preferred_lft foreverinet6 fe80::42:e1ff:fe74:a5bf/64 scope link valid_lft forever preferred_lft forever
5: veth873139c@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default link/ether 9a:cc:07:b8:51:aa brd ff:ff:ff:ff:ff:ff link-netnsid 0inet6 fe80::98cc:7ff:feb8:51aa/64 scope link valid_lft forever preferred_lft forever
11: veth1b36288@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default link/ether ea:38:4b:e5:22:b3 brd ff:ff:ff:ff:ff:ff link-netnsid 1inet6 fe80::e838:4bff:fee5:22b3/64 scope link valid_lft forever preferred_lft forever
[root@root _data]#
2.2查看容器的IP
查看容器的IP,使用一下命令,查看 "Networks":中的 "Gateway": "172.17.0.1", "IPAddress": "172.17.0.3",
[root@root _data]# docker inspect app02
"Networks": {"bridge": {"IPAMConfig": null,"Links": null,"Aliases": null,"MacAddress": "02:42:ac:11:00:03","NetworkID": "5c06bf39edc223eda9311e67b5b0d023806ed375e8e24e8672be832f691b908b","EndpointID": "1ecef5a2c484b5823319b003a248ce88b5b847f16cdf88cd889887eaf1a57679","Gateway": "172.17.0.1","IPAddress": "172.17.0.3",
2.3容器互通
docker为每一个容器分配一个ip,使用ip+port可以使容器之间相互访问。
[root@root _data]# docker exec -it mynginx bash
root@7236550f0194:/# curl http://172.17.0.3:80
2.4自定义网络
原因:容器的ip不固定,创建一个新的网络,使用域名的方式进行访问
2.4.1 创建自定义网络
[root@root _data]# docker network create mynet
55cff593988b4e0de23ed26924d1f4e011a53f9d8b27ee4a5b98bc7ea6870958
[root@root _data]# docker network ls
NETWORK ID NAME DRIVER SCOPE
5c06bf39edc2 bridge bridge local
1776efe50fa7 host host local
55cff593988b mynet bridge local
5297b84dfd13 none null local
[root@root _data]#
2.4.2创建容器的时候加入到自定义的网络
[root@root _data]# docker run -d --name app01 --network mynet -p 81:80 nginx
1c0baf2a2666d839add230effa4530b5e8ef7123be0573e7a6a686276f84a9b0
[root@root _data]# docker run -d --name app02 --network mynet -p 82:80 nginx
056416a0c89f8e9ca771c7c5f301b1d5e0312afa24cc1815d895b232bf724258
[root@root _data]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
056416a0c89f nginx "/docker-entrypoint.…" 5 seconds ago Up 5 seconds 0.0.0.0:82->80/tcp, :::82->80/tcp app02
1c0baf2a2666 nginx "/docker-entrypoint.…" 19 seconds ago Up 19 seconds 0.0.0.0:81->80/tcp, :::81->80/tcp app01
[root@root _data]#
2.4.3使用域名进行容器之间的访问
因为使用ip进行容器之间的访问ip不固定。所以在创建容器的时候,指定加入自定义网络,那么就可以使用固定的域名进行访问了,这个域名就是http://app02(容器名):80
[root@root ~]# docker exec -it app01 bash
root@1c0baf2a2666:/# curl http://app02:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>
root@1c0baf2a2666:/#
2.4.4redis主从同步集群


2.4.4.1启动redis主节点容器
[root@root ~]# docker run -d -p 6379:6379 --name redis01 --network mynet -v /app/rd1:/bitnami/reids/data -e REDIS_REPLICATION_MODE=master -e REDIS_PASSWORD=123456 bitnami/redis
Unable to find image 'bitnami/redis:latest' locally
latest: Pulling from bitnami/redis
44f3255d2f6a: Pull complete
Digest: sha256:5261cae9e4076b75d114e6bb032a0699c50b004ea06a680a5304c4c08d286adb
Status: Downloaded newer image for bitnami/redis:latest
da79f3d15645162d71a0bd8891c5e55271a20332de052f2371b4f0333413c93f
[root@root ~]#
2.4.4.2启动redis从节点容器
[root@root ~]# docker run -d -p 6380:6379 --name redis02 --network mynet \
> -v /app/rd2:/bitnami/redis/data \
> -e REDIS_REPLICATION_MODE=slave \
> -e REDIS_MASTER_HOST=redis01 \
> -e REDIS_MASTER_PORT_NUMBER=6379 \
> -e REDIS_MASTER_PASSWORD=123456 \
> -e REDIS_PASSWORD=123456 \
> bitnami/redis
57aec20a231bf85265036efd1374801ef0cbdbf5a28e5c25d2e4d4c92767b18b
小插曲,redis02启动报错。1:S 05 Jun 2024 04:59:18.559 # Can't open or create append-only dir appendonlydir: Permission denied
[root@root ~]# docker logs redis02
redis 04:59:18.42 INFO ==>
redis 04:59:18.42 INFO ==> Welcome to the Bitnami redis container
redis 04:59:18.42 INFO ==> Subscribe to project updates by watching https://github.com/bitnami/containers
redis 04:59:18.42 INFO ==> Submit issues and feature requests at https://github.com/bitnami/containers/issues
redis 04:59:18.42 INFO ==> Upgrade to Tanzu Application Catalog for production environments to access custom-configured and pre-packaged software components. Gain enhanced features, including Software Bill of Materials (SBOM), CVE scan result reports, and VEX documents. To learn more, visit https://bitnami.com/enterprise
redis 04:59:18.42 INFO ==>
redis 04:59:18.43 INFO ==> ** Starting Redis setup **
redis 04:59:18.44 INFO ==> Initializing Redis
redis 04:59:18.45 INFO ==> Setting Redis config file
redis 04:59:18.47 INFO ==> Configuring replication moderedis 04:59:18.53 INFO ==> ** Redis setup finished! **
redis 04:59:18.54 INFO ==> ** Starting Redis **
1:C 05 Jun 2024 04:59:18.558 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
1:C 05 Jun 2024 04:59:18.558 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 05 Jun 2024 04:59:18.558 * Redis version=7.2.5, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 05 Jun 2024 04:59:18.558 * Configuration loaded
1:S 05 Jun 2024 04:59:18.558 * monotonic clock: POSIX clock_gettime
1:S 05 Jun 2024 04:59:18.559 * Running mode=standalone, port=6379.
1:S 05 Jun 2024 04:59:18.559 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
1:S 05 Jun 2024 04:59:18.559 * Server initialized
1:S 05 Jun 2024 04:59:18.559 # Can't open or create append-only dir appendonlydir: Permission denied
修改文件夹的权限
[root@root app]# ll
总用量 12
drwxr-xr-x 2 root root 4096 6月 5 09:23 nghtml
drwxr-xr-x 2 root root 4096 6月 5 12:51 rd1
drwxr-xr-x 2 root root 4096 6月 5 12:59 rd2
[root@root app]# ^C
[root@root app]# ^C
[root@root app]# chmod 777 rd2
[root@root app]# ll
总用量 12
drwxr-xr-x 2 root root 4096 6月 5 09:23 nghtml
drwxr-xr-x 2 root root 4096 6月 5 12:51 rd1
drwxrwxrwx 2 root root 4096 6月 5 12:59 rd2
重启redis02
[root@root app]# docker restart redis02
redis02
[root@root app]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
57aec20a231b bitnami/redis "/opt/bitnami/script…" 7 minutes ago Up 3 seconds 0.0.0.0:6380->6379/tcp, :::6380->6379/tcp redis02
da79f3d15645 bitnami/redis "/opt/bitnami/script…" 15 minutes ago Up 15 minutes 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis01
[root@root app]#

相关文章:
docker 存储 网络 命令
文章目录 1 docker存储1.1 目录挂载2.1卷映射2.1.1卷映射和目录挂载的区别2.1.2卷映射的使用 2 docker网络2.1查看docker的默认网络2.2查看容器的IP2.3容器互通2.4自定义网络2.4.1 创建自定义网络2.4.2创建容器的时候加入到自定义的网络2.4.3使用域名进行容器之间的访问2.4.4re…...
【MATLAB源码-第222期】基于matlab的改进蚁群算法三维栅格地图路径规划,加入精英蚁群策略。包括起点终点,障碍物,着火点,楼梯。
操作环境: MATLAB 2022a 1、算法描述 蚁群算法(Ant Colony Optimization,ACO)是一种通过模拟蚂蚁觅食行为的启发式优化算法。它由意大利学者Marco Dorigo在20世纪90年代初提出,最初用于解决旅行商问题(T…...
百度ERNIE系列预训练语言模型浅析(4)-总结篇
总结:ERNIE 3.0与ERNIE 2.0比较 (1)相同点: 采用连续学习 采用了多个语义层级的预训练任务 (2)不同点: ERNIE 3.0 Transformer-XL Encoder(自回归自编码), ERNIE 2.0 Transformer Encode…...
Ubuntu 20.04 LTS配置JDK、Git
一、配置JDK 1.1 更新系统 执行以下命令 sudo apt update 出现以下界面即为安装成功 1.2 安装openjdk-11-jdk Ubuntu20.04中没有默认JDK,执行以下指令安装,默认会自动配置一些必要环境变量 sudo apt install openjdk-11-jdk 1.3 配置环境变量&…...
外汇天眼:Marqeta加速欧洲业务发展,华沙办公室正式开幕
Marqeta,全球现代卡发行平台,今天宣布在波兰华沙设立新办公室,以支持其长期的业务和增长战略。通过在波兰设立业务,Marqeta直接获得了进入欧盟的通道,为其在跨境增长和提供增强服务奠定了良好基础。波兰作为欧洲中心位…...
使用【AliceCarousel】实现轮播功能
无论是在react还是vue项目中,我们都可能会遇到需要轮播的场景,在实习中,遇到了实现组件轮播的需求,下面进行简要记录。 1. 安装AliceCarousel npm install react-alice-carousel --save 2. 引入AliceCarousel组件 import Reac…...
全屋智能的本质是低成本的重构
全屋智能(这里指的不是每个电器都可以在APP上控制,而是基于场景化的全屋智能),我第一次去圣都总部听讲的时候是不准备做的(我的理解是这玩意儿带来的是至少十万的成本)。但随着对于装修各项事物的接触&…...
开发一个comfyui的自定义节点-支持输入中文prompt
文章目录 目标功能开发环境实现过程翻译中文CLIP编码拓展仓库地址完整代码目标功能 目前comfyui的prompt提示词输入节点 CLIP Text Encode 只支持输入英文的prompt,而有时候我们需要自己制定一些prompt,所以就得将我们想要的提示词翻译为英文后再复制粘贴到该节点的输入框中…...
代码随想录第二十九天打卡| 491.递增子序列,46.全排列,47.全排列 II
491.递增子序列 本题和大家刚做过的 90.子集II 非常像,但又很不一样,很容易掉坑里。 代码随想录 视频讲解:回溯算法精讲,树层去重与树枝去重 | LeetCode:491.递增子序列_哔哩哔哩_bilibili class Solution { public:…...
音频数据上的会话情感分析
情感分析,也被称为观点挖掘,是自然语言处理(NLP)中一个流行的任务,因为它有着广泛的工业应用。在专门将自然语言处理技术应用于文本数据的背景下,主要目标是训练出一个能够将给定文本分类到不同情感类别的模型。下图给出了情感分类器的高级概述。 例如,三…...
算法金 | 一文读懂K均值(K-Means)聚类算法
大侠幸会,在下全网同名[算法金] 0 基础转 AI 上岸,多个算法赛 Top [日更万日,让更多人享受智能乐趣] 1. 引言 数据分析中聚类算法的作用 在数据分析中,聚类算法用于发现数据集中的固有分组,通过将相似对象聚集在一…...
江协科技STM32学习-1 购买24Mhz采样逻辑分析仪
前言: 本文是根据哔哩哔哩网站上“江协科技STM32”视频的学习笔记,在这里会记录下江协科技STM32开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技STM32教学视频和链接中的内容。 引用: STM32入门教程-2023版 细致讲…...
支付系统-业务账单
target:离开柬埔寨倒计时-210day 前言 最近不知道该写什么了,很多东西要写起来非常耗时间,写作是真的不容易呀 我们的支付系统账单有两大类,一个是业务账单还有一个就是资金记录,都是引发资金流后的资金变动表现&…...
AI引领天文新篇章:中科院发现107例中性碳吸收线,揭示宇宙深邃奥秘
在浩渺无垠的宇宙中,探索未知的天文现象一直是科学家们不懈的追求。近日,中科院上海天文台的研究团队在《天文物理杂志》(MNRAS)上发布了重要研究成果:利用人工智能技术,成功探测到了107例中性碳吸收线&…...
python 删除pdf 空白页
环境 python 3.10 PyPDF2 3.0.1 安装 pip install PyPDF2流程 将空白页和内容页读取出来,看看内部结构有什么不同以此为依据,遍历整个PDF 文件,标记处有内容的页面,写入到另外一个PDF文件。 python 代码 # 每一个页都是一个…...
flutter as连接网易模拟器
网易模拟器下载 Mac 使用MuMu模拟器调试 Flutter开发 Android Studio 安装第三方模拟器—网易MuMu Mac 安卓Studio使用外部模拟器 Mac电脑:Android Studio 连接 MUMU 网易模拟器 Mac 上 Android Studio 链接网易 MuMu 模拟器调试 在 .zshrc 中设置 adb 二进制文…...
fpga控制dsp6657上电启动配置
1 Verilog代码 dspboot_config.v timescale 1ns / 1ps //dsp上电启动配置 module dspboot_config (///时钟和复位input SYS_CLK_50MHz,input SYS_RST_n,//DSP启动配置output DSP_POR,output DSP_RESETFULL,output DSP_RESET,inout [12:…...
Tomcat启动闪退问题解决方法
Tomcat是一个广泛使用的开源Web服务器和Servlet容器。它的稳定性和灵活性使其在Java Web开发领域受到广泛关注。然而,在实际使用过程中,我们有时会遇到Tomcat启动后立即关闭的问题,这种现象通常被称为"闪退"。下面我将针对这个问题…...
【多模态】34、LLaVA-v1.5 | 微软开源,用极简框架来实现高效的多模态 LMM 模型
文章目录 一、背景二、方法2.1 提升点2.2 训练样本 三、效果3.1 整体效果对比3.2 模型对于 zero-shot 形式的指令的结果生成能力3.3 模型对于 zero-shot 多语言的能力3.4 限制 四、训练4.1 数据4.2 超参 五、评测六、代码 论文:Improved Baselines with Visual Inst…...
文件编码概念
文件的读取 open()函数: 打开一个已存在的文件,或者创建一个新文件 open(name,mode,encoding) name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径) mode:设置打开文件的模式(访问模式)&am…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
Linux基础开发工具——vim工具
文章目录 vim工具什么是vimvim的多模式和使用vim的基础模式vim的三种基础模式三种模式的初步了解 常用模式的详细讲解插入模式命令模式模式转化光标的移动文本的编辑 底行模式替换模式视图模式总结 使用vim的小技巧vim的配置(了解) vim工具 本文章仍然是继续讲解Linux系统下的…...
vxe-table vue 表格复选框多选数据,实现快捷键 Shift 批量选择功能
vxe-table vue 表格复选框多选数据,实现快捷键 Shift 批量选择功能 查看官网:https://vxetable.cn 效果 代码 通过 checkbox-config.isShift 启用批量选中,启用后按住快捷键和鼠标批量选取 <template><div><vxe-grid v-bind"gri…...
【Linux】使用1Panel 面板让服务器定时自动执行任务
服务器就是一台24小时开机的主机,相比自己家中不定时开关机的主机更适合完成定时任务,例如下载资源、备份上传,或者登录某个网站执行一些操作,只需要编写 脚本,然后让服务器定时来执行这个脚本就可以。 有很多方法实现…...
Linux系统:进程间通信-匿名与命名管道
本节重点 匿名管道的概念与原理匿名管道的创建命名管道的概念与原理命名管道的创建两者的差异与联系命名管道实现EchoServer 一、管道 管道(Pipe)是一种进程间通信(IPC, Inter-Process Communication)机制,用于在不…...
