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

    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.mfbz.cn/a/762875.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

把图片的透明部分去掉

问题&#xff1a; canvas裁剪的图把整个画布都剪下来了&#xff0c;但只要有元素的部分 // 图像处理// 把图片的透明部分去掉 export function getImagesRealSize(dataUrl) {return new Promise((resolve, reject) > {// 将Base64解码为二进制数据let binaryString atob(…

【启明智显活动分享】 启明与你,上海慕尼黑电子展不见不散!

启明与你&#xff0c;上海慕尼黑电子展不见不散&#xff01;&#x1f389; &#x1f50d; 展会现场&#xff0c;你将亲眼目睹RTOS、LINUX、Android全系列方案及产品的精彩展示。从经典到前沿&#xff0c;一站式满足你的技术探索需求。 &#x1f4a1; 更值得期待的是&#xff0…

微信小程序毕业设计-英语互助系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

硬件实用技巧:cadence Aleego创建焊盘过程

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140110911 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

windows USB 设备驱动开发-Host端和Device端

Windows 中的 USB 宿主端驱动程序 下图显示了适用于 Windows 的 USB 驱动程序堆栈的体系结构框图。 此图显示了适用于 USB 2.0 和 USB 3.0 的单独 USB 驱动程序堆栈。 当设备连接到 xHCI 控制器时&#xff0c;Windows 加载 USB 3.0 驱动程序堆栈。 Windows 为连接到 EHCI、OHC…

Windows/Linux/Mac 系统局域网服务发现协议及传输速度比较

简介 分析 / 验证对比常见局域网服务发现协议在 Windows/Linux/Mac 等不同系统下的支持和表现 在使用不同系统的智能硬件时&#xff0c;如常见的树莓派 / Openwrt 路由器 / Debian/Fedora/Windows/Mac 等系统是&#xff0c;系统间相互发现以及网络共享本应是系统的基础服务&a…

【RT摩拳擦掌】基于RT106L/S语音识别的百度云控制系统

【RT摩拳擦掌】基于RT106L/S语音识别的百度云控制系统 一 文档简介二 平台构建2.1 使用平台2.2 百度智能云2.2.1 物联网核心套件2.2.2 在线语音合成 2.3 playback语音数据准备与烧录2.4 开机语音准备与添加2.5 唤醒词识别词命令准备与添加 三 代码准备3.1 sln-local/2-iot 代码…

黑马点评下订单-小程序下单没问题但是Postman发送请求失败了,返回401

经过多方探索&#xff0c;这个✓8错误就是由于黑马点评使用了拦截器&#xff0c;我们直接发送请求是会被拦截器拦截下来的&#xff0c;我给出的解决方案是通过配置Postman解决&#xff0c;方法很简单&#xff01; 解决方案 右边的value写上Redis里面登录所用token值就可以了…

【TB作品】打地鼠游戏,ATMEGA16单片机,Proteus仿真 打地鼠游戏

11个按键LCD1602显示器9个灯蜂鸣器打地鼠小游戏就是九个灯泡&#xff0c;对应九个按键&#xff0c;灯泡有红黄蓝&#xff0c;每间隔一会儿就会亮一个灯&#xff0c;代表地鼠冒出来&#xff0c;按一下按键让灯泡灭掉代表打地鼠&#xff0c;红的三分&#xff0c;黄的两分&#xf…

开发自动发送国际短信的工具需要用到哪些源代码?

在当今数字化、全球化的时代&#xff0c;国际短信作为一种高效、便捷的沟通方式&#xff0c;在各个领域发挥着越来越重要的作用。 开发一款能够自动发送国际短信的工具&#xff0c;不仅能够帮助企业实现精准营销、客户服务&#xff0c;还能为个人提供便捷的跨国交流方式。 本…

手把手教你搭建PyTorch环境:MindStudio中PyTorch模型开发实战

本次实验的视频链接如下&#xff1a;​https://www.bilibili.com/video/BV1iA4y1f7o1/ 本次实验在MindStudio上进行&#xff0c;请先按照 教程 配置环境,安装MindStudio。 ​ MindStudio的是一套基于华为自研昇腾AI处理器开发的AI全栈开发工具平台&#xff0c;该IDE上功能很多…

Leetcode.1735 生成乘积数组的方案数

题目链接 Leetcode.1735 生成乘积数组的方案数 rating : 2500 题目描述 给你一个二维整数数组 q u e r i e s queries queries &#xff0c;其中 q u e r i e s [ i ] [ n i , k i ] queries[i] [n_i, k_i] queries[i][ni​,ki​] 。第 i i i 个查询 q u e r i e s [ i …

AI绘画工具Midjourney:和Discord互相成就

前言 提到文生图&#xff0c;很多人都会想到植根于根植于Discord社区的Midjourney&#xff0c;本篇文章就基于作者的使用体验思考&#xff0c;并结合了Discord来对Midjourney进行探讨&#xff0c;感兴趣的朋友一起来看看吧。 如果要说现在最火的文生图&#xff0c;不得不说到Mi…

深入理解 “androidx.databinding.DataBindingUtil“ 细节和使用

介绍 数据绑定&#xff08;Data Binding&#xff09;是 Android 中的一个强大功能&#xff0c;它允许你使用声明性格式而不是编程方式将布局中的 UI 组件绑定到应用中的数据源。androidx.databinding.DataBindingUtil 类是一个工具类&#xff0c;它提供了用于处理数据绑定的方…

单片机语音识别控制蓝牙通信

基于单片机语音识别控制&蓝牙控制 1、Arduino单片机语音控制1.1 直连1.2 蓝牙无线连接1.3 部分核心程序1.4 实物演示 2、51单片机语音控制2.1 直连2.2 蓝牙无线连接2.3 部分核心程序2.4 实物演示 3、STM32单片机语音控制3.1 直连3.2 蓝牙无线连接3.3 部分核心程序3.4 实物演…

数据结构之“刷链表题”

&#x1f339;个人主页&#x1f339;&#xff1a;喜欢草莓熊的bear &#x1f339;专栏&#x1f339;&#xff1a;数据结构 目录 前言 一、相交链表 题目链接 大致思路 代码实现 二、环形链表1 题目链接 大致思路 代码实现 三、环形链表2 题目链接 大致思路 代码实…

RANSAC空间圆拟合实现

由初中的几何知识我们可以知道&#xff0c;确定一个三角形至少需要三个不共线的点&#xff0c;因此确定一个三角形的外接圆至少可用三个点。我们不妨假设三个点坐标为P1(x1,y1,z1),P2(x2,y2,z2),P3(x3,y3,z3)。 圆方程的标准形式为&#xff1a; (xi-x)2(yi-y)2R2 &#xff08;1…

8605 删数问题

这是一个典型的贪心算法问题。我们可以从高位开始&#xff0c;找到第一个比后面数字大的数字&#xff0c;删除它&#xff0c;然后继续这个过程&#xff0c;直到删除k个数字。如果我们已经删除了k个数字&#xff0c;但是还没有找到一个比后面数字大的数字&#xff0c;那么我们就…

专题六:Spring源码之初始化容器BeanFactory

上一篇咱们通过一个例子介绍初始化容器上下文相关内容&#xff0c;并通过两个示例代码看到了Spring在设计阶段为我预留的扩展点&#xff0c;和我们应该如何利用这两个扩展点在Spring初始化容器上下文阶段为我们提供服务。这一篇咱们接着往下看。 老这样子下回到refresh方法上来…

首款内置电源的迷你主机,不到千元的办公神器 | 零刻EQ13评测报告

零刻首款内置电源的迷你主机&#xff0c;不到千元的办公神器 | 零刻EQ13评测报告 哈喽小伙伴们好&#xff0c;我是Stark-C~ 众所周知&#xff0c;零刻作为目前国产迷你主机第一品牌&#xff0c;旗下系列众多&#xff0c;产线丰富&#xff0c;比如说它有针对游戏玩家的性能主机…