【docker】11. 容器实战案例

综合实战一:Mysql 容器化安装

  1. 进入 mysql 的镜像网站,查找 mysql 的镜像
    mysql docker hub 官网
    可以看到有这么多的 tag
    在这里插入图片描述
  2. 我们选择使用最多的 5.7 版本,拉取镜像
root@139-159-150-152:/data/myworkdir/container# docker pull mysql:5.7
5.7: Pulling from library/mysql
2ec521688c56: Pull complete 
f911f9b90db6: Pull complete 
38eb4fe7ed26: Pull complete 
01f772a6b25f: Pull complete 
499456357ebf: Pull complete 
274f3ad0dcec: Pull complete 
3e6a5b12e1de: Pull complete 
de0c5c82dbbc: Pull complete 
c9bd281f4600: Pull complete 
3289c4277a83: Pull complete 
8b66f10a11fa: Pull complete 
Digest: 
sha256:1780318bdabc0edd36907bf91b47632eb912e8ea91258eca3590f8aca6f54836
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7
  1. 我们知道 msyql 的默认端口是 3306,而且有密码,查看官网的启动用例 docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag 指定了 mysql 的密码信息
#启动一个 msyql,并指定密码和端口开放
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 8200:3306 -d mysql:5.7
  1. 我们进入容器登录,可以看到我们已经可以正常登录 msyql 了
root@139-159-150-152:/data/myworkdir/container# docker exec -it mysql bash
bash-4.2# mysql -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.41 MySQL Community Server (GPL)
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current 
input statement.
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)
  1. 如果我们对外开放了 8200 端口,没有防火墙的话,我们可以通过 GUI 工具远程登录到界面上。以 mysql workbench 为例。
    在这里插入图片描述
  2. 释放空间
docker stop mysql
docker rm mysql

综合实战二:Redis 容器化安装

Redis 简介

Redis 出现的原因

在 Web 应用发展的初期,那时关系型数据库受到了较为广泛的关注和应用,原因是因为那时候 Web 站点基本上访问和并发不高、交互也较少。而在后来,随着访问量的提升,使用关系型数据库的 Web 站点多多少少都开始在性能上出现了一些瓶颈,而瓶颈的源头一般是在磁盘的 I/O 上。而随着互联网技术的进一步发展,各种类型的应用层出不穷,这导致在当今云计算、大数据盛行的时代,对性能有了更多的需求,主要体现在以下几个方面:

  1. 低延迟的读写速度:应用快速地反应能极大地提升用户的满意度
  2. 支撑海量的数据和流量:对于搜索这样大型应用而言,需要利用 PB 级别的数据和能应对百万级的流量

为了克服这一问题,NoSQL 应运而生,它同时具备了高性能、可扩展性强、高可用等优点,受到广泛开发人员和仓库管理人员的青睐。

Redis 是什么

Redis 全称 Remote Dictionary Server,中文名为远程字典服务器。
Redis 是现在最受欢迎的 NoSQL 数据库之一,Redis 是一个使用 ANSI C 编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库,其具备如下特性:
• 基于内存运行,性能高效
• 支持分布式,理论上可以无限扩展
• key-value 存储系统
• 开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API

Redis 的应用场景

几乎所有的大厂都在使用 Redis。Redis 提供了多种数据类型,String 类型、哈希类型、列表类型、集合类型和顺序集合类型,借助这些类型可以方便的实现多种应用,如缓存系统(“热点”数据:高频读、低频写)、计数器、消息队列系统、实时排行榜、社交网络。

Redis 生活案例

Redis 就像一个新华字典,可以根据某个字符可以很快的找到字典对应的字。
在这里插入图片描述

Redis 容器创建

  1. 下载 redis 镜像
root@139-159-150-152:/data/myworkdir/container# docker pull redis:7.0
7.0: Pulling from library/redis
f1f26f570256: Pull complete 
8a1809b0503d: Pull complete 
d792b14d05f9: Pull complete 
ad29eaf93bf6: Pull complete 
7cda84ccdb33: Pull complete 
95f837a5984d: Pull complete 
Digest: sha256:ac8ff440c1098a1fbb1b977fb51bb3c8a65ec557978fb1d50488dc9d6af11693
Status: Downloaded newer image for redis:7.0
docker.io/library/redis:7.0
  1. 启动 redis 容器
docker run --name redis -p 8300:6379 -d redis:7.0
  1. 进入容器,设置一个 key
root@139-159-150-152:/data/myworkdir/container# docker exec -it redis bash
root@c0b3c4ae457e:/data# redis-cli 
127.0.0.1:6379> set mykey 1
OK
127.0.0.1:6379> get mykey
"1"
127.0.0.1:6379> 
  1. 如果开通了防火墙,我们可以通过可视化工具连接上,可视化工具下载地址
    AnotherRedisDesktopManager
    在这里插入图片描述
  2. 配置链接
    在这里插入图片描述
  3. 查看 key
    在这里插入图片描述7. 退出容器,然后释放空间
docker stop redis
docker rm redis

综合实战三、C++容器制作

源是什么

源就是来源。
就是你安装软件时,程序从哪里获取软件包(安装程序在你的机器上,但需要安装的东西却在软件源服务器上)。
源,在 Ubuntu 下,它相当于软件库,需要什么软件,只要记得正确的软件名就可以用命令抄安装:
其实你可以把他称为软件仓库。安装软件时,就是从仓库里面调取数据放在你的机器上。

sudo apt-get install 软件名
例如:你要安装 gcc 软件,那么你就可以再终端中输入 sudo apt-get install gcc,这样就能帮你装好 gcc 软件,如果源里没有这个软件时,此命令就没法完成。

什么是镜像

镜像(Mirroring)是一种文件存储形式,是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。
常见的镜像文件格式有 ISO、BIN、IMG、TAO、DAO、CIF、FCD。
所谓镜像文件其实和 ZIP 压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用,例如一个测试版的操作系统、游戏等。(安装过操作系统的人应该对 xxx.iso 不陌生)
镜像文件不仅具有 ZIP 压缩包的“合成”功能,它最重要的特点是可以被特定的软件识别并可直接刻录到光盘上。

镜像源

镜像源就是把官方的源做一个镜像,你可以在这下载软件。
比如 ubuntu 官方源在国外,下载软件可能会很慢,这时候就需要换成国内的镜像源。
我们基于 ubuntu 来制作 C++容器,运行输出 HelloWorld
可以把镜像源当做一个代理商,比如买车本来要去车厂,但是设置了一个个 4s 店以后,我去 4s 店就好了,不用跑到车厂。

中科大源

https://mirrors.ustc.edu.cn/help/
在这里插入图片描述
可以在该网址上查看镜像源的配置操作

制作 c++容器

  1. 下载 Ubuntu 镜像
root@139-159-150-152:/data/myworkdir/container# docker pull ubuntu:22.04
22.04: Pulling from library/ubuntu
2ab09b027e7f: Pull complete 
Digest: sha256:67211c14fa74f070d27cc59d69a7fa9aeff8e28ea118ef3babc295a0428a6d21
Status: Downloaded newer image for ubuntu:22.04
docker.io/library/ubuntu:22.04
  1. 启动容器
root@139-159-150-152:/data/myworkdir/container# docker run --name mygcc -it ubuntu:22.04 bash
root@50d527b8343e:/# 
  1. 配置国内镜像源加速
root@50d527b8343e:/# sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list
root@50d527b8343e:/# 
  1. 安装 gcc vim
apt update
apt install gcc vim -y
  1. 编辑代码
root@50d527b8343e:/# mkdir src
root@50d527b8343e:/# cd src
root@50d527b8343e:/src# vim demo.c
#输入以下内容
#include <stdio.h>
int main()
{printf("hello docker!\n");return 0;
}
  1. 编译代码
root@50d527b8343e:/src# gcc demo.c -o demo
  1. 在容器中运行
root@50d527b8343e:/src# ./demo 
hello docker!
  1. 退出容器
root@50d527b8343e:/src# exit
exit
  1. 这个时候可以看到我们的容器已经退出了,如果想再次进入使用 docker restart 就可以恢复容器
  2. 清理容器释放空间
docker stop mygcc
docker rm mygcc

综合实战四、SpringBoot 容器制作

编写 demo

使用 Spring Boot 创建一个简单的 demo, 在浏览器输出 hello docker!。

  1. 创建 maven 项目,选择 Spring Boot 2.x 的第一个发布版本 2.0.2.RELEASE 进行实操, 如下在 pom.xml 中添加 spring-boot 依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>springboot-demo</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><!-- 项目的 pom 定义继承自 SpringBoot 的父 pom --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.2.RELEASE</version></parent><!-- Web 项目,添加 spring-boot-starter-web 依赖即可,版本号由父
pom 已经定义好了,此处省略 --><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><!-- 添加 spring boot 项目构建插件 --><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>
</project>
  1. 编写主函数构建 Spring 容器
package com.bittech.boot;
import org.springframework.boot.SpringApplication;
import 
org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ExampleApplication {public static void main(String[] args) {SpringApplication.run(ExampleApplication.class, args);}
}
  1. 编写控制器
package com.bittech.boot;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping(value = "/hello")
public class ExampleController {@RequestMapping(value = "")public String index() {return "Hello Spring Boot for Docker World!";}
}
  1. 使用 maven 打包生成 jar 包
    在这里插入图片描述
    生成的 jar 包位于项目根路径下的 target 目录
    在这里插入图片描述
  2. 测试 jar 包是否可用
# 在 cmd 中执行命令测试 jar 包是否可用
java -jar D:\code\java_relearn\springboot-demo\target\springbootdemo-1.0-SNAPSHOT.jar

启动容器后, 访问 localhost:8080/hello 查看运行结果, 确认 jar 包可用。
在这里插入图片描述
6. 上传到 Linux 服务器备用

[zsc@VM-8-12-centos spring_demo]$ pwd
/home/zsc/dockerfile/spring_demo
[zsc@VM-8-12-centos spring_demo]$ ls
Dockerfile springboot-demo-1.0-SNAPSHOT.jar

制作容器

  1. 下载 Ubuntu 镜像
root@139-159-150-152:/data/myworkdir/container# docker pull 
ubuntu:22.04
22.04: Pulling from library/ubuntu
2ab09b027e7f: Pull complete 
Digest: 
sha256:67211c14fa74f070d27cc59d69a7fa9aeff8e28ea118ef3babc295a0428
a6d21
Status: Downloaded newer image for ubuntu:22.04
docker.io/library/ubuntu:22.04
  1. 启动容器
root@139-159-150-152:/data/myworkdir/container# docker run -p 
8080:8080 --name myjava -it ubuntu:22.04 bash
root@50d527b8343e:/# 
  1. 配置国内镜像源加速
root@50d527b8343e:/# sed -i 
's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' 
/etc/apt/sources.list
root@50d527b8343e:/# 
  1. 安装 jdk
apt update
apt install -y openjdk-8-jdk
  1. 打开新的 shell 窗口,将 jar 拷贝到容器里面
docker cp ./springboot-demo-1.0-SNAPSHOT.jar myjava:/app.jar
  1. 查看容器中文件
root@071ceaad511a:/# ll
total 15824
drwxr-xr-x 1 root root 4096 Mar 24 10:28 ./
drwxr-xr-x 1 root root 4096 Mar 24 10:28 ../
-rwxr-xr-x 1 root root 0 Mar 24 10:24 .dockerenv*
-rw-r--r-- 1 root root 16125993 Mar 24 10:23 app.jar
lrwxrwxrwx 1 root root 7 Mar 8 02:05 bin -> usr/bin/
drwxr-xr-x 2 root root 4096 Apr 18 2022 boot/
drwxr-xr-x 5 root root 360 Mar 24 10:24 dev/
drwxr-xr-x 1 root root 4096 Mar 24 10:27 etc/
drwxr-xr-x 2 root root 4096 Apr 18 2022 home/
lrwxrwxrwx 1 root root 7 Mar 8 02:05 lib -> usr/lib/
lrwxrwxrwx 1 root root 9 Mar 8 02:05 lib32 -> usr/lib32/
lrwxrwxrwx 1 root root 9 Mar 8 02:05 lib64 -> usr/lib64/
lrwxrwxrwx 1 root root 10 Mar 8 02:05 libx32 -> usr/libx32/
drwxr-xr-x 2 root root 4096 Mar 8 02:05 media/
drwxr-xr-x 2 root root 4096 Mar 8 02:05 mnt/
drwxr-xr-x 2 root root 4096 Mar 8 02:05 opt/
dr-xr-xr-x 206 root root 0 Mar 24 10:24 proc/
drwx------ 2 root root 4096 Mar 8 02:08 root/
drwxr-xr-x 1 root root 4096 Mar 24 10:27 run/
lrwxrwxrwx 1 root root 8 Mar 8 02:05 sbin -> usr/sbin/
drwxr-xr-x 2 root root 4096 Mar 8 02:05 srv/
dr-xr-xr-x 13 root root 0 Mar 24 10:24 sys/
drwxrwxrwt 1 root root 4096 Mar 24 10:27 tmp/
drwxr-xr-x 1 root root 4096 Mar 8 02:05 usr/
drwxr-xr-x 1 root root 4096 Mar 8 02:08 var/
  1. 启动 java 服务
java -jar ./app.jar
  1. 通过浏览器访问页面,注意确保防火墙打开
    在这里插入图片描述
  2. ctrl+c 退出服务,exit 退出容器
  3. 释放资源
docker stop myjava
docker rm myjava

综合实战五、容器资源更新

  1. 我们运行一个 nginx
docker run -d --name mynginx5 -p 80:80 nginx:1.22.1								
  1. 我们可以通过 docker top 查看容器中有哪些进程,添加 aux,可以看到占用的内存和 CPU 信息
root@139-159-150-152:~# docker top mynginx5 aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 227456 0.0 0.3 8916 6236 ? Ss 17:12 0:00 nginx: master process nginx -g daemon off;
systemd+ 227489 0.0 0.1 9304 2548 ? S 17:12 0:00 nginx: worker process
  1. 通过 docker stats 可以看到资源的动态变化
root@139-159-150-152:~# docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
d1f5c5990c95 mynginx5 0.00% 2.648MiB / 1.936GiB 0.13% 6.99kB / 2.57kB 2.29MB / 4.1kB 2
  1. 我们通过 docker update 更新 docker 的最大内存
root@139-159-150-152:~# docker update -m 300m --memory-swap 600m mynginx5
mynginx5
  1. 我们通过 docker stats 再次查看可以看到内存已经被限制到 300m 了
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
d1f5c5990c95 mynginx5 0.00% 2.648MiB / 300MiB 0.88% 7.06kB / 2.57kB 2.29MB / 4.1kB 2
  1. 我们在容器中执行一个命令,打满 cpu
for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`
dodd if=/dev/zero of=/dev/null &
done

#说明:
#cat /proc/cpuinfo |grep “physical id” | wc -l 可以获得 CPU 的个数,我们将其表示为 N
#seq 1 N 用来生成1到N之间的数字
#for i in seq 1 N; 就是循环执行命令,从1到N
#dd if=/dev/zero of=/dev/null 执行 dd 命令, 输出到/dev/null, 实际上只占用 CPU, 没有 IO 操作
#由于连续执行N个(N是 CPU 个数)的 dd 命令, 且使用率为 100%, 这时调度器会调度每个 dd 命令在不同的 CPU 上处理,最终就实现所有CPU占用率 100%

  1. 执行命令配置只能使用 10%的 cpu
docker update --cpu-period=100000 --cpu-quota=10000 mynginx5
  1. 可以看到 cpu 已经只能到 10%左右了
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % 
NET I/O BLOCK I/O PIDS
d1f5c5990c95 mynginx5 9.80% 2.648MiB / 300MiB 0.88% 
7.06kB / 2.57kB 2.29MB / 4.1kB 2
  1. 停止容器,释放资源
docker stop mynginx5
docker rm mynginx5

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

全新图文对、视频文本对数据集,高效赋能多模态大模型训练任务

海天瑞声11月数据集上新&#xff01;这次推出的数据集包括语音识别、语音合成、多模态等领域&#xff0c;可用于多模态大模型训练任务&#xff0c;开发者可轻松应对数据瓶颈&#xff0c;高效提升模型性能。 印度尼西亚语语音识别数据集 泰语语音识别数据集 温柔贴心中文女声语…

ES集群规模与角色规划

业务场景需求 业务特征 目前日志统计分析集群具有以下关键特征&#xff1a; 延迟要求&#xff1a;30秒以内并发性能&#xff1a;高并发读写数据容错&#xff1a;可容忍少量数据丢失 数据规模 每日原始日志采集量&#xff1a;约150GB数据查询范围&#xff1a; 近期数据&…

[Redis#14] 持久化 | RDB | bgsave | check-rdb | 灾备

目录 0.概述 持久化的策略 1 RDB 1.1 触发机制 1.2 流程说明 1.3 RDB 的优缺点 0.概述 在学习 MySQL 数据库时&#xff0c;我们了解到事务的四个核心特性&#xff1a;原子性、一致性、持久性和隔离性。这些特性确保了数据库操作的安全性和可靠性。当我们转向 Redis 时&a…

Modern Effective C++ 条款二十九三十:移动语义和完美转发失败的情况

条款二十九&#xff1a;假定移动操作不存在&#xff0c;成本高&#xff0c;未被使用 移动语义可以说是C11最主要的特性。"移动容器和拷贝指针一样开销小"&#xff0c;"拷贝临时对象现在如此高效&#xff0c;“写代码避免这种情况简直就是过早优化"。很多开…

C++【模板】plus

目录 一、非类型模板参数 1.引入 2.使用 二、模板特化 1.函数模板特化 2.特化失效 3.类模板特化 应用 三、*带模板的分离编译 一、非类型模板参数 1.引入 我们使用宏对某个变量进行定值&#xff0c;如 #define N10 --->那么N在下面使用时始终为10&#xff0c;如果…

Leetcode 每日一题 290.单词规律

目录 一、问题分析 二、解题思路 三、代码实现 四、复杂度分析 五、总结 在编程的世界里&#xff0c;我们常常会遇到各种有趣的字符串匹配问题。今天要探讨的就是这样一个问题&#xff1a;给定一种规律 pattern 和一个字符串 s&#xff0c;判断 s 是否遵循与 pattern 相同…

浅谈FRTC8563M实时时钟芯片

FRTC8563M是NYFEA徕飞公司推出的一款实时时钟芯片和日历芯片&#xff0c;采用MSOP-8封装形式。它具有低功耗特性&#xff0c;适用于电池供电的便携式设备。该芯片提供年、月、日、星期、小时、分钟和秒的计时功能&#xff0c;并且具有闹钟功能。FRTC8563M通过I2C总线与微控制器…

HOC vs Render Props vs Hooks

相关问题 什么是 HOC / Render Props / Hooks为什么需要 HOC / Render Props / Hooks如何提高代码复用性Hooks 的实现原理Hooks 相比其他方案有什么优势 关键点 复用性HOC / Render Props / Hooks 三种写法都可以提高代码的复用性&#xff0c;但实现方法不同&#xff1a; H…

【每天一篇深度学习论文】2024多级卷积模块MCM

目录 论文介绍题目&#xff1a;论文地址&#xff1a; 创新点方法模型总体架构双流编码器特征融合模块解码器 核心模块描述多尺度感知融合模块&#xff08;MAFM&#xff09;全局融合模块&#xff08;GFM&#xff09;多级卷积模块&#xff08;MCM&#xff09; 即插即用模块作用特…

Play with docker 使用ssh命令远程登录时Permission denied (publickey)

可以看到这里使用的是 ssh-ed25519 在本机生成对应密钥: ssh-keygen -t ed25519 -P "" -f ~/.ssh/id_ed25519 然后再尝试远程连接就好了。 参考:无法通过SSH连接到码头游乐场中的实例-腾讯云开发者社区-腾讯云

我眼中的“懂重构”(一)

初识重构 2017年的时候&#xff0c;领导让我看公司的一本书《重构——改善代码的既有设计》&#xff0c;这是一本JAVA版本的&#xff0c;前后看了2遍。那时候看书因为不懂看的格外仔细。我只是那时候不懂&#xff0c;然而多年后的今天我仍然发现很多人对重构充满误解。在刚进入…

数字图像处理(15):图像灰度反转和彩色反转

&#xff08;1&#xff09;图像反转&#xff1a;是指对图像的颜色信息进行相反的处理&#xff0c;从而得到一个新的图像。在计算机视觉和图像处理领域&#xff0c;图像反转是一种常见的操作&#xff0c;它可以帮助我们实现不同的图像特效和视觉效果。 &#xff08;2&#xff09…

Ubuntu系统上mysql服务部署

前段时间搞了一个mysql服务端的部署&#xff0c;在Ubuntu系统上&#xff0c;中间也踩了许多坑&#xff0c;特此记录下。 下载 官网&#xff1a;MySQL :: MySQL Community Downloads 这个里面有不同系统的安装包&#xff0c;根据自己的系统选择&#xff0c;我选了 MySQL Com…

linux 服务器 一次性查看 CPU、内存和磁盘使用情况

创建 vi check_usage.sh #!/bin/bashecho " CPU 使用率 " mpstat -P ALL 1 1echo -e "\n 内存使用情况 " free -hecho -e "\n 磁盘使用率 " df -h执行授权 chmod x check_usage.sh执行查看 ./check_usage.sh这样可以快速获取系统资源的概览。…

Unity HDRP Water Surface 水系统 基础教程

Unity HDRP Water Surface 水系统 基础教程 Unity Water SurfaceUnity 项目创建Unity Water Surface&#xff1a;Ocean&#xff08;海洋&#xff09;简介Ocean&#xff1a;Transform、GeneralOcean&#xff1a;Simulation&#xff08;仿真模拟&#xff09;Ocean&#xff1a;Sim…

【Golang】Golang基础语法(三):常量

常量 Golang 语言当中常量的定义和其它语言类似。 const filename_in_package string "abc.txt" // 可以定义为包内常量func consts() {const filename string "abc.txt" // 可以为常量规定类型const a, b 3, 4 // 也可以不规定const…

Cesium-环境搭建

安装步骤 1.安装node.js 2.去Cesium官网下载源码包 other:npm install Cesium 通过这种方式装 ,没有装成功,主要错误提示说缺少gulp文件,具体错误如下 ​ [1/5] Validating package.json... [2/5] Resolving packages... success Already up-to-date. $ gulp prepare &a…

mysql基础学习1

useradd -r -g mysql -s /bin/false mysql (-r)系统用户 不能登录 A temporary password is generated for rootlocalhost: d>#jT7rfoaz) 看是否启动 看进程 端口 直接连接 看日志 varchar (20) char(20)更耗空间 create table student_info(id int,name varchar(20),s…

行业Know-How助力零售企业数字化转型|StartDT Talk

【StartDT Talk】“客户成功三要素”系列直播第三期圆满收官&#xff01; 本期直播聚焦于三要素之一的“好的行业Know-How”&#xff08;行业理解&#xff09;&#xff0c;由奇点云创始人行在和资深产研专家追风共同探讨与零售相关的行业知识&#xff0c;以及我们在零售行业的…

linux——进程间通信system V消息队列

Linux——命名管道及日志-CSDN博客 文章目录 目录 文章目录 前言 一、system V消息队列是什么&#xff1f; 二、相关库接口 1.shmget接口 2、ftok接口 3、shmget、ftok接口封装 4、共享内存操作 ​编辑 5、shmdt接口 三.函数的调用 1、查看共享内存 2、shell 四…