生产环境部署与协同开发-Docker(原创超全)

news2024/12/25 0:51:30
    1. 关闭防火墙
  1. systemctl stop firewalld.service
  1. 关闭SELinux
  1. vim /etc/selinux/config
  1. 查看yum支持的包
  2. 并安装docker引擎
  1. yum list
  2. yum install -y docker
  1. 启动docker
  2. 设置docker自启动
  3. 测试docker是否安装成功?
  1. systemctl start docker
  2. systemctl enable docker
  3. docker run hello-world
  • 镜像命令
    1. 获取镜像名叫cento的镜像
  1. docker pull centos
  1. 查看主机已有的镜像
  2. 镜像搜索
  1. docker images
  2. docker search cento
  1. 删除镜像(3)
  1. docker rmi 5d0da3dc9764
  2. docker rmi 5d
  3. docker rmi docker.io/centos
  • 容器命令
    1. 创建一个容器
    2. 查看未开启的镜像
    3. 启动容器
  1. docker create -it centos
  2. docker ps -a
  3. docker start f63400dfc24a
  1. 创建并启动容器(docker不是容器,是管理容器的工具)
  1. docker run -it centos /bin/echo "hello world"
  1. 以守护态的形式在后台运行
  1. docker run -d centos /bin/bash -c "while i <= 4 ;do echo hello ; sleep 1 ;done"

  1. 获取容器信息
  2. 获取容器启动时输出的信息
  3. 终止容器
  4. 重开起容器
  5. 重启restart 换 start
  1. docker ps
  2. docker logs cb
  3. docker stop cb
  4. docker start cb
  1. 进入容器里边
  2. 退出
  1. docker exec -it f6 /bin/bash
  2. exit
  1. 删除容器
  1. docker rm cb


 

卡片2


 

  • 其他命令
    1. docker 日志帮助
    2. 查看容器日志
  1. docker log -help
  2. docker top f6
  1. 从容器拷贝文件到主机上
  1. docker exec -it f6 /bin/bash
  2. ls
  3. cd opt/
  4. vi a.info
  5. exit
  6. cd /opt
  7. docker cp f6:/opt/a.info /opt
  • java环境
    1. 查看java镜像
    2. 下载jdk
    3. 运行jdk镜像
  1. docker search openjdk:11
  2. docker pull openjdk:11
  3. docker run openjdk:11 java -version
  • docker实践_安装Tomcat
    1. 查看tomcat镜像
    2. 下载tomcat镜像
    3. 查看所有镜像
    4. 启动Tomcat容器
  1. docker search docker.io/tomee
  2. docker pull docker.io/tomee
  3. docker images
  4. docker run --name my_tomcat -d -p 9090:8080 docker.io/tomee

  1. 查看防火墙
  2. 关闭防火墙
  3. 开启防火墙
  1. firewall-cmd --state
  2. systemctl stop firewalld.service
  3. systemctl start firewalld.service
  • docker 实践_安装Mysql
    1. 查看
    2. 下载
    3. 启动
  1. docker search mysql:5.7
  2. docker pull docker run -d -p 3036:3036 docker.io/migs/mysql-5.7
  3. docker run --name mysql -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 docker.io/migs/mysql-5.7

卡片3

  • docker数据管理_配置数据卷
    1. 先查看并关停已有的容器(先暂停再删除)
    2. 先创建一下Tomcat并进入再找到容器中webapps的路径
    3. 退回并删除刚刚创建的,重新创建并添加参数-v 将主机的本地绝对路经挂载到刚刚copy下来的容器的路经下面
    4. 并重启
    5. 在网站上输入本机的IP以及文件所在路径
  1. docker stop 90
  2. docker rm 90
  3. docker run -d --name my_tomcat -p 6060:
  4. 80 docker.io/tomee
  5. docker exec -it 40 /bin/bash
  6. 80
  7. cd webapps
  8. pwd
  9. exit
  10. docker stop 40
  11. docker rm 40
  12. docker run -d --name my_tomcat -p 6060:8080 -v /opt/webapps:/usr/local/tomee/webapps docker.io/tomee
  13. cd /opt
  14. ll
  15. cd webapps
  16. mkdir test
  17. cd test
  18. vim index.html
  19. cd ..
  20. cd ..
  21. docker restart 15
  • docker数据管理_数据卷容器
  1. docker volume COMMAND
  2. docker volume ls
  3. docker volume prune
  4. docker volume create test_web
  5. docker volume ls
  6. docker volume inspect test_web
  7. cd /var/lib/docker
  8. pwd
  9. ll
  10. cd volumes
  11. ll
  12. cd test_web/
  13. ll
  14. cd -data
  15. pwd
  16. docker run -d --name mytomcat -p 6060:8080 -v test_web:/user/local/tomee/webapps docker.io/tomee
  17. mkdir test
  18. cd test/
  19. vim index.html
  20. docker restart d5

查看数据卷命令

查看数据卷信息(路径)

查看docker存放文件的地方里的内容

这就是docker存放文件的路径

进入volume后再进入里面存数据的地方

创建文件并在浏览器上运行

出现这个问题

原因分析:

写错了路径

  • Mysql数据持久化(上)
  1. docker run -d -p 3036:3306 -v /opt/mysql/conf.d -v /opt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_pASSWORD=123456 --name my-mysql docker.io/migs/mysql-5.7

第一次创建了这个dockerMysql容器,但始终没法运行

删了重弄

查看日志(不被允许,权限受限制)

删了重弄,这次加个 --privileged

然后就好了进容器里了

卡片4

  • Mysql数据持久化(下)
  1. docker exec -it e2 /bin/bash
  2. mysql -uroot -p
  3. show databases;
  4. create database test;
  5. use test;
  6. create table dog;
  7. insert into dog value (1,"tom");
  8. select *from dog;
  9. exit
  10. exit
  11. docker ps
  12. docker stop e2
  13. docker rm e2
  14. cd /opt
  15. ll
  16. cd mysql
  17. ll
  18. cd data
  19. ll
  20. docker run -d -p 3036:3306 -v /opt/mysql/conf:/etc/mysql/conf.d -v /opt/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql1 docker.io/google/mysql
  21. docker exec -it a1 /bin/bash
  22. mysql -uroot -p
  23. show databases;
  24. use test;
  25. select * from dog ;

问题1:

解决方式:

vi /etc/sysctl.conf

#新增一行

net.ipv4.ip_forward=1

#执行命令

systemctl restart network

注释呀,你写进去,注释掉,那不是相当于没写吗

问题2:找不到镜像

换个源

2.匿名挂载

  1. docker run -d --name my_tomcat -p 8081:8080 -v /usr/local/tomcat/webapps tomee

2.数据卷挂载还可以指定权限

  1. docker run -d -P --name tomcat -v my-nginx:/etc/nginx:ro tomcat
  2. docker run -d -P --name tomcat -v my-nginx:/etc/nginx:rw tomcat
  • 构建镜像

构建centos镜像

  1. vim Dockerfile
  2. vim(3~8) 里
  3. #基础镜像
  4. FROM centos
  5. #维护者信息
  6. MAINTAINER baizhan<baizhan@163.com>
  7. #当容器启动的时候执行的命令
  8. CMD echo "Hello Dockerfile"
  9. docker build -t test:v1 .

  1. docker images
  2. docker run test:v1

构建java镜像

  1. cd /opt
  2. ll
  3. vim Dockerfile
  4. # 基础镜像
  5. FROM java:8
  6. # 维护者
  7. MAINTAINER baizhan<baizhan@163.com>
  8. # 工作目录 切换目录
  9. WORKDIR /opt
  10. # 构建镜像的时候执行的命令
  11. RUN mkdir abc
  12. docker build -t test:v1 .
  13. docker run -it test:v1
  14. ls

run 命令创建的中间镜像会缓存,会在下次构建中使用,如果不想使用这些缓存镜像,可以指定

--no-cache参数

卡片5

  • FROM/MAINTAINER/RUN/ADD/CMD/

tar -cvf info.tar a.info b.info

vim Dockerfile

# 基础镜像

FROM java:8

# 维护者

MAINTAINER baizhan<baizhan@163.com>

# 工作目录 切换目录

WORKDIR /opt

# 构建镜像的时候执行的命令

RUN mkdir abc

#将本地文件添加到容器内

ADD ./info.tar /opt #如果是压缩文件的话,会自动为我们解压

#构建成功后执行的命令

CMD echo "This is a test." | wc - #wc的用法

docker build -t test:v3

docker run -it test:v3

卡片6

  • ENV

FROM java:8

# 维护者

MAINTAINER baizhan<baizhan@163.com>

# 工作目录 切换目录

WORKDIR /opt

# 构建镜像的时候执行的命令

RUN mkdir abc

#将本地文件添加到容器内

ADD ./apache-tomcat-9.0.76.tar.gz /opt

#构建成功后执行的命令

#CMD echo "This is a test." | wc -

    • (额外仿照jdk对Tomcat进行相关操作)
    • linux 解压和压缩文件
    • tar -zxvf jdk-8u201-linux-x64.tar.gz -c /usr/local #解压文件
    • tar -zcvf jdk-8u201-linux-x64.tar.gz jdk-8u201-linux-x64 #压缩文件

docker build -t test2:v1 .

docker run -it test2:v1

ls

cd apache-tomcat-9.0.76

ls

cd bin

./startup.sh #在bin路径下确实可以运行tomcat

但如果返回到/opt 路径下就不行了(如果不配置环境变量的话)

所以操作如下:

# 基础镜像

FROM java:8

# 维护者

MAINTAINER baizhan<baizhan@163.com>

# 工作目录 切换目录

WORKDIR /opt

# 构建镜像的时候执行的命令

RUN mkdir abc

#将本地文件添加到容器内

ADD ./info.tar /opt #如果是压缩文件的话,会自动为我们解压

#构建成功后执行的命令

CMD echo "This is a test." | wc - #wc的用法

#环境变量

ENV TOMCAT_HOME=/opt/apache-tomcat-9.0.76 #设置了一个Tomcat的home路径

ENV PATH=$PATH:$TOMCAT_HOME/bin #将该Tomcat路径加到Path路径里

(permission denied)

  • EXPOSE

# 基础镜像

FROM java:8

# 维护者

MAINTAINER baizhan<baizhan@163.com>

# 工作目录 切换目录

WORKDIR /opt

# 构建镜像的时候执行的命令

RUN mkdir abc

#将本地文件添加到容器内

ADD ./info.tar /opt #如果是压缩文件的话,会自动为我们解压

#构建成功后执行的命令

CMD echo "This is a test." | wc - #wc的用法

#环境变量

ENV TOMCAT_HOME=/opt/apache-tomcat-9.0.76 #设置了一个Tomcat的home路径

ENV PATH=$PATH:$TOMCAT_HOME/bin #将该Tomcat路径加到Path路径里

#对外暴露端口

EXPOSE 8080

docker run -it -p 8080:8080 #绑定暴露的对外端口号


 

  • VOLUMN

VOLUME /data #一个卷可以存在于一个或多个容器的指定目录

  • ONBUILD

cd /opt

mkdir abc

cd abc

vim Dockerfile

FROM centos

WORKDIR /data

ONBUILD RUN mkdir test

docker build -t test3:v1 .

docker run -it test3:v1

ls #没有test 文件, 单纯一个镜像不作操作,只有别人继承它的时候才会作用

exit

mkdir d

cd d

vim Dockerfile

FROM test3:v1

docker build -t test3:v2 .

docker run -it test3:v2

ls #有test文件

  • CMD和ENTRYPOINT的区别

vim Dockerfile

#基础镜像

#基础镜像

from centos

#启动容器运行命令

CMD ["ls" , "-a"]

docker build -t test4:v1 .

docker run -it test4:v1

docker run -it test4:v1 ls -l #对CMD的指令进行替换

vim Dockerfile

#基础镜像

#基础镜像

from centos

#启动容器运行命令

ENTRYPOINT ["ls" , "-a"]

docker build -t test4:v2

docker run -it test4:v2 -l #对ENTRYPOINT的指令进行追加

  • 构建tomcat 的镜像

docker search tomcat |wc -l

tar -zxvf apache-tomcat-9.0.76.tar.gz

cd apache-tomcat-9.0.76

cd bin

ls #查看到有startup.sh文件

vim Dockerfile

#基础镜像

#基础镜像

FROM openjdk:11

#维护者

MAINTAINER baizhan

#将本地文件添加到容器内

ADD ./apache-tomcat-9.0.76.tar.gz /usr/local

#设置工作目录

WORKDIR /usr/local

#设置环境变量

ENV TOMCAT_HOME=/usr/local/apache-tomcat-9.0.76

ENV PATH=$PATH:$TOMCAT_HOME/bin

#保留端口

EXPOSE 8080

#启动容器运行命令

CMD startup.sh && tail -F /usr/local/ apache-tomcat-9.0.76/bin/catalina.bat

docker build -t tomcat:1.0 . # " . "代表Dockerfile文件和该命令在同一个目录

docker run --name tomcat -d -p 8080:8080 tomcat:1.0 #运行刚刚创建的镜像

卡片7

  • docker0 详解

ifconfig

#看到:

3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default

link/ether 02:42:58:9b:bc:66 brd ff:ff:ff:ff:ff:ff

inet172.17.0.1/16 scope global docker0

valid_lft forever preferred_lft forever

inet6 fe80::42:58ff:fe9b:bc66/64 scope link

valid_lft forever preferred_lft forever

57: vethc23b124@if56: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default

link/ether 12:64:29:59:42:ea brd ff:ff:ff:ff:ff:ff link-netnsid 0

inet6 fe80::1064:29ff:fe59:42ea/64 scope link

valid_lft forever preferred_lft forever

docker run --name mytomcat -d -p 8080:8080 docker.io/tomcat

docker exec -it tomcat /bin/bash

ip addr

问题:没办法使用ifconfig 和ip addr 命令

问题解决:(阉割版的Tomcat,纯净的镜像)

在容器里使用:

apt-get update

apt install net-tools

ifconfig

root@0a5a85d262e4:/usr/local/tomcat# ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet172.17.0.2 netmask 255.255.0.0 broadcast 0.0.0.0

inet6 fe80::42:acff:fe11:2 prefixlen 64 scopeid 0x20<link>

ether 02:42:ac:11:00:02 txqueuelen 0 (Ethernet)

RX packets 3277 bytes 10820785 (10.3 MiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 3214 bytes 181688 (177.4 KiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

#出现172.17.0.2

  • evth-pair(容器通过这个技术分配IP)

docker run --name tomcat3 -d -p 9090:8080 docker.io/tomee

docker exec -it mytomcat ping tomcat3

[root@localhost opt]# docker exec -it mytomcat ping tomcat2

rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:290: starting container process caused "exec: \"ping\": executable file not found in $PATH"

#报错

docker exec -it tomcat3 /bin/bash

ifconfig

root@80b82ebc2d88:/usr/local/tomee# ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

inet172.17.0.4 netmask 255.255.0.0 broadcast 0.0.0.0

inet6 fe80::42:acff:fe11:4 prefixlen 64 scopeid 0x20<link>

ether 02:42:ac:11:00:04 txqueuelen 0 (Ethernet)

RX packets 4075 bytes 30095862 (30.0 MB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 3506 bytes 194772 (194.7 KB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

#出现172.17.0.4

61: veth9f3b85c@if60: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default

link/ether be:aa:d7:25:26:70 brd ff:ff:ff:ff:ff:ff link-netnsid 0

inet6 fe80::bcaa:d7ff:fe25:2670/64 scope link

valid_lft forever preferred_lft forever

65: veth1224aaa@if64: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default

link/ether da:73:51:80:e1:6a brd ff:ff:ff:ff:ff:ff link-netnsid 2

inet6 fe80::d873:51ff:fe80:e16a/64 scope link

valid_lft forever preferred_lft forever

虚拟接口,成对出现

docker使用linux的桥接,宿主机中一个docker 容器的网桥:即Docker0

docker stop $(docker ps -aq) #暂停所有的容器

docker rm $(docker ps -aq) #删掉容器

ifconfig #只有docker0,刚刚创建的网桥不在了

  • 容器互联

Docker网络管理——容器互联

docker run --name tomcat3 -d -p 8080:8080 docker.io/tomee

docker run --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 docker.io/mysql:5.7

docker exec -it mysql /bin/bash

ifconfig

#还是不行

#换了个tomee的镜像再重复刚刚操作就好了

#ip 是172.17.0.4

exit

    • ping ip

docker exec -it mytomcat /bin/bash

ping 172.17.0.4 #可以ping通,因为两个容器都在同一个局域网下

问题:要下载语言包

apt -y install iputils-ping

    • ping 名字

删除所有Tomcat容器

docker run --name my_tomcat3 -d -p 8080:8080 --link mysql1 tomcat

docker run --name mysql3 -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

docker exec -it my_tomcat3 ping mysql3

问题:没ping通

原因分析:两个容器都要下载ping 命令

问题: mysql ping不了

解决:

apt-get update

apt-key adv --keyserver https://mirrors.tuna.tsinghua.edu.cn/ubuntu --recv-keys B7B3B788A8D3785C

apt -y install iputils-ping

#能通过名字进行Ping的原因分析:

映射关系

docker exec -it my_tomcat3 /bin/bash

cat /etc/hosts

[root@localhost opt]# docker exec -it my_tomcat1 /bin/bash

root@694940ed4da1:/usr/local/tomee# cat /etc/hosts

127.0.0.1 localhost

::1 localhost ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

172.17.0.2 mysql1 b6f400762441

172.17.0.3 694940ed4da1

  • docker4种网络模式

Host模式

容器和宿主机共同一个网卡,使用宿主机的IP和端口(同时可以访问你的容器,全开放,不安全)

Container模式

刚创建的容器和之前创建的容器共用一个IP ,而不是和宿主机共享(极少用)

None模式

创建的容器没办法联网,最安全

bridge模式(默认,最常用)

docker0 分配IP,在同一个局域网里

  • 自定义网络

docker network --help

docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet

# 模式 网段 网关 名字

#192.168.66.0/24 : 192.168.66.1-192.168.66.254

#192.168.0.0/16 : 192.168.0.1-192.168.255.254

docker run --name tomcat -d -p 8080:8080 tomee

docker ps

docker network connect mynet tomcat #方法1

docker network inspect mynet

"1604ea3b0b420507237b7d46fee2fc0633da421c5a539a436af4fe6130f5cf52": {

"Name": "tomcat",

"EndpointID": "d0f5e72ad1942ea5b7ac38c848f87675b2696776ecce3355b2f01307c84da688",

"MacAddress": "02:42:c0:a8:00:02",

"IPv4Address": "192.168.0.2/16",

"IPv6Address": ""

docker network connect mynet tomcat

docker run -d -p 8090:8080 --name tomcat2 --net mynet tomee #方法2

docker network inspect mynet

"Containers": {

"1604ea3b0b420507237b7d46fee2fc0633da421c5a539a436af4fe6130f5cf52": {

"Name": "tomcat",

"EndpointID": "d0f5e72ad1942ea5b7ac38c848f87675b2696776ecce3355b2f01307c84da688",

"MacAddress": "02:42:c0:a8:00:02",

"IPv4Address": "192.168.0.2/16",

"IPv6Address": ""

},

"363b1a8fe1003533b1c872709aa61d583664a54723c799621afefe94a784207f": {

"Name": "tomcat2",

"EndpointID": "b3cd0b6cefe3d2079d582e9c5f9c60fe11a206179194e21296377984516fea40",

"MacAddress": "02:42:c0:a8:00:03",

"IPv4Address": "192.168.0.3/16",

"IPv6Address": ""

}

都在同一个网络下就能ping通

网关相同就能ping通

docker run -d -p 7070:8080 --name tomcat4 --net=host tomee #指定Docker的连接方式

  • Docker公有云-DockerHub
  • Docker C|S架构

sudo docker version

sudo docker -H tcp://127.0.0.1:1234 (docker run / docker pull )

  • Docker的联合文件

FROM centos:6.9

RUN rm -rf /etc/yum.repos.d/* && \

curl -o /etc/yum.repos.d/CentOS

Base.repo

http://mirrors.aliyun.com/repo/Centos-6.repo

&& \

curl -o /etc/yum.repos.d/epel.repo

http://mirrors.aliyun.com/repo/epel-6.repo

&& \

yum install nginx -y

WORKDIR /usr/share/nginx/html

ADD xiaoniao.tar.gz .

ADD init.sh /init.sh

EXPOSE 80

VOLUME /usr/share/nginx/html

CMD ["/bin/bash","/init.sh"]

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

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

相关文章

HCIE实验这样玩太高级了吧?实现FRR+BFD+OSPF与BGP的联动

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 晚上好&#xff0c;我的网工朋友。 今天搞个HCIE实验玩玩&#xff0c;上回分享了个张总讲解的防火墙配置实验思路&#xff0c;后来还特地搞了个视…

【电路笔记】-A类放大器

A类放大器 文章目录 A类放大器1、A类放大器概述2、A类放大器基本通用发射极配置3、变压器耦合配置4、总结在 放大器类型简介的文章中,我们介绍了不同类别的放大器。 在本文中,我们将更详细地介绍A类放大器。 在介绍不同的A类放大器配置前,首先的是要记住放大器类别的选择标…

面向优秀SCI论文写作的语言大模型提示词设计

模板1&#xff1a;Abstract 润色 I want you to act as an SCI reviewer and evaluate the abstract of a research paper. You may check if the abstract is well-written and serves as an informative and descriptive overview of the research. You may also check if it…

Centos7网络配置(设置固定ip)

文章目录 1进入虚拟机设置选中【网络适配器】选择【NAT模式】2 进入windows【控制面板\网络和 Internet\网络和共享中心\更改适配器设置】设置网络状态。3 设置VM的【虚拟网络编辑器】4 设置系统网卡5 设置虚拟机固定IP 刚安装完系统&#xff0c;有的人尤其没有勾选自动网络配置…

IOS17闪退问题Assertion failure in void _UIGraphicsBeginImageContextWithOptions

最近项目更新到最新版本IOS17&#xff0c;发现一个以前的页面突然闪退了。原来是IOS17下&#xff0c;这个方法 UIGraphicsBeginImageContext(CGSize size) 已经被移除&#xff0c;原参数如果size为0的话&#xff0c;会出现闪退现象。 根据说明&#xff0c;上述方法已经被替换…

Python + OpenCV 酷游地址教学V鄋KWK3589

本篇文章汇整了一系列的Python OpenCV 教学&#xff0c;只要按照教学文的顺序阅读和实作&#xff0c;就可以轻松入门OpenCV&#xff0c;并透过OpenCV 实现许多影像相关的创意应用。 接下来我们来介绍OpenCV-- OpenCV 是一个跨平台的电脑视觉函式库( 模组) &#xff0c;可应用…

Supabase 自托管部署实践

Supabase 是 Firebase 的开源替代品。使用 Postgres 数据库、身份验证、即时 API、边缘函数、实时订阅、存储和向量嵌入来启动您的项目。 Supabase介绍 Supabase 是一个开源的后端即服务&#xff08;BaaS&#xff09;平台&#xff0c;提供了一系列工具和服务&#xff0c;帮助…

qt中数据库和excel互导数据————附带详细步骤和代码

文章目录 0 背景1 准备QXlsx环境1.1 cmake安装使用1.2 qmake使用 2 把excel数据导出到mysql数据库3 把mysql数据库的数据写入到excel4 完整代码5 项目代码仓库 0 背景 因为需要批量导入和导出数据&#xff0c;所以需要用到excel。实现把数据库的数据导入到excel中&#xff0c;…

matrix-breakout-2-morpheus靶场

1 信息收集 1.1 主机发现 arp-scan -l 1.2 端口与服务扫描 发现开放22、80、81端口 2 访问服务 2.1 访问80端口 查看源代码 2.2 访问81端口 3 目录扫描 3.1 dirsearch目录扫描 dirsearch -u 192.168.1.14 发现robots.txt文件和javascript文件 访问文件 http://192.168…

linux网络命令:httpie详解-简单易用的命令行 HTTP 客户端

目录 一、命令概述 二、基本特点 1、直观和友好的命令语句 2、内置 JSON 支持 3、支持多种请求方法 4、支持 HTTPS、代理和授权验证 5、支持多种请求数据格式 6、自定义 headers 头 7、持久 sessions 存储 8、插件支持 三、安装 1、对于基于 Debian 的系统&#xf…

【你也能从零基础学会网站开发】关系型数据库中的表(Table)设计结构以及核心组成部分

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;程序猿、设计师、技术分享 &#x1f40b; 希望大家多多支持, 我们一起学习和进步&#xff01; &#x1f3c5; 欢迎评论 ❤️点赞&#x1f4ac;评论 &#x1f4c2;收藏 &#x1f4c2;加关注 关系型数据库中…

idea 项目互联网转内网开发 依赖报错问题 maven问题

场景&#xff1a; 这个问题困扰好久&#xff0c;通过分析后&#xff0c;发现是maven配置问题&#xff0c;废话不多说&#xff0c;上干活。 问题描述 项目互联网从转内网开发&#xff0c;提前下载好repository&#xff0c;跟项目一起导入内网&#xff0c;导入后&#xff0c;发…

Jasper Report详细使用教程

1、编写jrxml文件 1.1 新建项目 使用Jaspersoft Studio来创建一个项目&#xff0c;如图所示&#xff0c;新建一个项目&#xff0c;步骤&#xff1a; File -> New -> Project->JasperReportsProject 1.2 新建一个Jasper Report模板 找到你新建的项目。步骤&#xff1a;…

昇思25天学习打卡营第6天|简单的深度学习模型实战 - 函数式自动微分

自动微分(Automatic Differentiation)是什么&#xff1f;微分是函数在某一处的导数值&#xff0c;自动微分就是使用计算机程序自动求解函数在某一处的导数值。自动微分可用于计算神经网络反向传播的梯度大小&#xff0c;是机器学习训练中不可或缺的一步。 这些公式难免让人头大…

抛弃 Neofetch?众多优秀替代方案等你体验!

目录 抛弃 Neofetch&#xff1f;众多优秀替代方案等你体验Neofetch 的替代品FastfetchscreenFetchmacchina 抛弃 Neofetch&#xff1f;众多优秀替代方案等你体验 NeoFetch 是用 Bash 3.2 编写的命令行系统信息工具&#xff0c;该项目的主要开发人员已将 GitHub 存储库存档&…

【C++11:右值引用,列表初始化】

统一列表初始化&#xff1a; 构造函数的函数名与函数体之间增加一个列表&#xff0c;用于对成员初始化 在实例化对象时&#xff0c;支持单/多参数的隐式转化&#xff0c;同时也可以省略符号&#xff0c;让代码更简洁 右值的引用 左值&#xff1a; 左值与右值的重要区别就是能…

用代码实现加载中动图 loading.gif

效果 仅使用htmlcss&#xff0c;效果如下所示 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>加载中</title><style>.el-loading-spinner .circular {height: 42px;width: 42px;…

7.1作业

初始化 /******rcc章节初始化********/ |//1.使能gpiob组控制器 |RCC->MP_AHB4ENSETR |(0X1<<1); |//2.使能gpiog组控制器 |RCC-&…

【TB作品】矩阵键盘电话拨号,ATMEGA16单片机,Proteus仿真 atmega16矩阵键盘电话拨号

atmega16矩阵键盘电话拨号 c代码和仿真图&#xff1a; 使用ATmega16实现矩阵键盘电话拨号功能 项目背景 在电子设计和嵌入式系统开发中&#xff0c;矩阵键盘是常见的人机交互方式。它可以实现较多按键的输入&#xff0c;同时节省单片机的I/O资源。结合LCD显示和蜂鸣器&am…

四城联动 | 亚控KingSCADA4.0信创版发布会圆满收官

圆满收官 随着科技的飞速发展&#xff0c;智能制造和工业自动化已成为推动产业升级的重要力量。在这样的背景下&#xff0c;北京亚控科技发展有限公司&#xff08;以下简称“亚控科技”&#xff09;于2024年6月18日至27日&#xff0c;分别在沈阳、大连、长春和哈尔滨四地成功举…