目录
三、项目实施 8
3.1 搭建Docker实训环境 8
3.1.1本地安装docker环境 8
3.1.2运行docker 10
3.2 Docker容器编排功能 11
3.2.1 编写Dockerfile构建nginx:v1镜像,宿主机端口是8080,默认主页内容是学号+姓名。 11
3.2.2 利用Compose部署一个Tomcat环境,上传一个自己编写的html网站,测试外网访问到这个的网站。 12
3.2.3 搭建私有仓库,上传nginx:v1镜像。 15
3.3 Docker网络配置、容器互联、配置网桥 16
3.3.1 创建一个点到点的连接 16
3.3.2跨主机容器间点到点连接 18
3.4 数据卷容器来备份、恢复、迁移数据卷 23
3.4.2利用数据卷容器来备份、恢复、迁移数据卷 25
3.5 掌握Docker Swarm集群的自动编排和发现功能 27
3.5.1 Docker Swarm环境安装 27
3.5.2 启动swarm集群 28
四、总结 32

三、项目实施
3.1 搭建Docker实训环境

3.1.1本地安装docker环境
1、将Docker.tar.gz压缩包和 CentOS-7.5-x86_64-DVD-1804.iso镜像文件通过CRT上传至/root目录并解压Docker.tar.gz
[root@master ~]#tar -zxvf Docker.tar.gz
挂载镜像
[root@master ~]#mkdir centos
[root@master ~]#vi /etc/fstab //挂载
/dev/sr0 /root/centos/ iso9600 ro 0 0
2、vi /etc/selinux/config //修改selinux参数
[root@master ~]# vim /etc/sysconfig/selinux
SELINUX=disabled
SELINUXTYPE=targeted
[root@master ~]#reboot
[root@master ~]# getenforce 0
3、关闭防火墙及设置开机不自启
[root@server ~]#iptables -F;iptables -Z;iptables -X
[root@server ~]# systemctl stop firewalld
[root@server ~]# systemctl disable firewalld
[root@server ~]# systemctl status firewalld | grep “Active”
Active: inactive (dead)
4、vi /etc/sysctl.conf //开启路由转发
[root@server ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
[root@server ~]# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
5、添加yum源
[root@server ~]#cd /etc/yum.repos.d
[root@server yum.repos.d]# ls
[root@server yum.repos.d]# mkdir bk
[root@server yum.repos.d]# mv C* bk
[root@server ~]# cat /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[docker]
name=docker
baseurl=file:///root/Docker
gpgcheck=0
enabled=1
[root@server ~]# yum clean all
[root@server ~]# yum repolist
repo id repo name status
centos centos 3,971
Docker Docker
6、检查内核
[root@server ~]# uname -r
3.10.0-327.el7.x86_64
7、安装Docker
[root@server ~]# yum -y install docker*
启动 Docker 并设置开机自启
[root@server ~]# systemctl daemon-reload
[root@server ~]# systemctl restart docker
[root@server ~]# systemctl enable docker
查看 Docker 的系统信息
[root@server ~]# docker info

图3.1.1-1 使用docker info查看docker系统信息

3.1.2运行docker
(1)从公共仓库下载镜像
[root@server yum.repos.d]# systemctl restart docker
[root@server yum.repos.d]# yum -y install ntpdate
[root@server yum.repos.d]# ntpdate cn.pool.ntp.org
//设置时间同步
[root@server yum.repos.d]# docker search ubuntu
//查看公共仓库上的镜像文件
[root@server yum.repos.d]# docker pull ansible/ubuntu14.04-ansible
//拉取公共仓库上的镜像文件
(2)运行容器,并进入容器进行配置
[root@server ~]#docker run -it --name=ubuntu001 ubuntu:latest bash
运行ubuntu14.04镜像并循环打印“hello,world”字符串
[root@server ~]#docker run ansible/ubuntu14.04-ansible /bin/bash -c “while true;do echo hollow,world;sleep 1;done”

图3.1.2-1 运行镜像并循环打印“hello world”字符

3.2 Docker容器编排功能
3.2.1 编写Dockerfile构建nginx:v1镜像,宿主机端口是8080,默认主页内容是学号+姓名。
1、拉取nginx镜像
[root@master ~]# docker pull nginx:latest
[root@master ~]# docker images
2、创建Dockerfile脚本
[root@master ~]# mkdir mynginx
[root@master ~]# cd /mynginx
[root@master ~]# touch Dockerfile
[root@master mynginx]# ls
Dockerfile
3、编写脚本
[root@master mynginx]# vi Dockerfile
FROM nginx:latest
RUN echo ‘

20 wangqiuju

’ > /usr/share/nginx/html/index.html
4、构建自定义镜像
[root@master mynginx]#docker build -t nginx:v1 .
[root@master mynginx]#docker images | grep nginx
5、运行新的镜像
[root@master mynginx]#docker run -itd --name mynginx -p 8080:80 --restart=always nginx:v1
0b05c83125dfe7aed4800e7022088e852ff73eac34e2b62e7a712c6e93d49ba9
[root@master mynginx]#docker ps
6、访问网址
http://192.168.8.13:8080

图3.2.1-1构建自定义镜像ngnix:v1


图3.2.1-2访问结果

3.2.2 利用Compose部署一个Tomcat环境,上传一个自己编写的html网站,测试外网访问到这个的网站。
1、将压缩包jdk-8u171-linux-x64和unzip apache-tomcat-7.0.67.zip文件通过CRT上传至/root/Tomcat6-16目录并解压它们。
[root@master ~]# mkdir Tomcat6-16
[root@master ~]# cd Tomcat6-16/
[root@master Tomcat6-16]# tar -zxvf jdk-8u171-linux-x64.tar.gz
[root@master Tomcat6-16]# yum -y install unzip
[root@master Tomcat6-16]# unzip apache-tomcat-7.0.67.zip
[root@master Tomcat6-16]# tar -cvzf apache-tomcat-7.0.67.tar.gz apache-tomcat-7.0.67
2、用二进制安装docker-compose
[root@master~]#curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose
.给权限并查看版本
[root@master ~]# chmod +x /usr/local/bin/docker-compose
[root@master ~]# docker-compose -v
docker-compose version 1.16.1, build 6d1ac21
创建Tomcat路径
[root@master ~]#mkdir myTomcat
[root@master ~]#cd myTomcat/
安装所需要的的包并解压
[root@master ~]#tar -xvzf jdk-8u171-linux-x64.tar.gz
[root@master ~]#tar -xvzf apache-tomcat-7.0.67.tar.gz
编写Dockerfile
[root@master myTomcat]#vi Dockerfile
FROM centos
ADD ./jdk-8u171-linux-x64.tar.gz /root
ADD ./apache-tomcat-7.0.67.tar.gz /root
ENV JAVA_HOME /root/jdk1.8.0_171
ENV PATH JAVAHOME/bin:JAVA_HOME/bin:JAVAH​OME/bin:PATH
RUN chmod +x /root/apache-tomcat-7.0.67/bin/startup.sh
RUN chmod +x /root/apache-tomcat-7.0.67/bin/catalina.sh
EXPOSE 8080
ENTRYPOINT /root/apache-tomcat-7.0.67/bin/startup.sh && tail -F /root/apache-tomcat-7.0.67/logs/catalina.outt
编写docker-compose.yml
[root@master myTomcat]#vi docker-compose.yml
version: ‘3’
services:
tomcat:
build: .
restart: always
ports:
- “8200:8080”
3、执行docker-compose up
[root@master myTomcat]#docker-compose up
http://192.168.8.13:8200
4、上传一个自己编写的html网站,测试外网访问到这个的网站。
1)安装httpd服务
[root@master ~]# yum -y install httpd
2)启动apache服务器
[root@master ~]# systemctl start httpd
3)设置开机自启
[root@master ~]# systemctl enable httpd
4)编写index.html文件
[root@master ~]# cd /var/www/
[root@master www]# ls
[root@master html]# ls
index.html
[root@master html]# cat index.html
此生不悔入华夏,来世还做中国人!
5、访问地址http://192.168.8.13

图3.2.2-1 Tomcat环境界面

图3.2.2-1 自己编写的网站界面

3.2.3 搭建私有仓库,上传nginx:v1镜像。
1、拉取 registry镜像
[root@master ~]#docker pull registry:latest
2、当私有仓库和公有仓库并存的时候,要对vi /usr/lib/systemd/system/docker.service进行修改。
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
–insecure-registry 192.168.8.13:5000
3、然后将docker重新启动
[root@master ~]# systemctl daemon-reload
[root@master ~]# systemctl restart docker
4、给 nginx:v1镜像打标签
[root@master ~]# docker tag nginx:v1 192.168.8.13:5000/nginx:v1
5、将镜像上传到私有仓库
[root@master ~]# docker push 192.168.8.13:5000/nginx:v1
查看镜像
[root@master ~]# docker images
7、查看仓库中的镜像
[root@master ~]# curl http://192.168.8.13:5000/v2/nginx/tags/list
{“name”:“nginx”,“tags”:[“v1”]}

图3.2.3-1 将镜像上传到私有仓库并查看镜像

3.3 Docker网络配置、容器互联、配置网桥
3.3.1 创建一个点到点的连接
1、创建两个容器
首先启动 2 个容器(容器不能退出,操作请克隆终端)
[root@server ~]# docker run -it --net=none --rm centos:latest
[root@3c23411da935 /]#
[root@server ~]# docker run -it --net=none --rm centos:latest
[root@e85d5487d317 /]#
查看容器ID
[root@server ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1e6ef8446688 ubuntu:latest “bash” 33 seconds ago Up 32 seconds ubuntu002
e97aae7da13a ubuntu:latest “bash” 5 minutes ago Up 4 minutes ubuntu001
2、创建两个容器自身的命令空间
找到进程号,然后创建网络命名空间的跟踪文件
[root@server ~]# docker inspect -f ‘{{.State.Pid}}’ 3c23411da935
1777
[root@server ~]# docker inspect -f ‘{{.State.Pid}}’ e85d5487d317
1887
[root@server ~]# mkdir -p /var/run/netns
[root@server ~]# ln -s /proc/1777/ns/net /var/run/netns/1777
[root@server ~]# ln -s /proc/1887/ns/net /var/run/netns/1887
3、创建PEER接口绑定容器
创建一对 peer 接口,然后配置路由
[root@server ~]# ip link add A type veth peer name B
把进程号为1777的容器分配到A接口。
[root@server ~]# ip link set A netns 1777
为A接口配置10.1.1.1/32的地址。
[root@server ~]# ip netns exec 1777 ip addr add 10.1.1.1/32 dev A
开启A接口。
[root@server ~]# ip netns exec 1777 ip link set A up
为A接口配置路由指向10.1.1.2。
[root@server ~]# ip netns exec 1777 ip route add 10.1.1.2/32 dev A
把进程号为1887的容器分配到B接口
[root@server ~]# ip link set B netns 1887
为B接口配额制10.1.1.2/32的地址
[root@server ~]# ip netns exec 1887 ip addr add 10.1.1.2/32 dev B
开启B接口。
[root@server ~]# ip netns exec 1887 ip link set B up
为B接口配置路由指向10.1.1.1。
[root@server ~]# ip netns exec 1887 ip route add 10.1.1.1/32 dev B
4.测试连通性
[root@e85d5487d317 /]# ping 10.1.1.2 -c 3
[root@3c23411da935 /]# ping 10.1.1.1 -c 3

图3.3.1-1 容器间互pingIP地址(1)

图3.3.1-2 容器间互pingIP地址(2)

3.3.2跨主机容器间点到点连接
1、在两台主机上创建一个Linux桥,并给桥设置管理地址
#yum install bridge-utils
#brctl addbr br-int
[root@luyan ~]# ifconfig br-int 172.19.65.1/24
[root@luyan2 ~]#ifconfig br-int 172.19.64.1/24
#ip link set br-int up
2、修改两台主机上的容器默认网桥
#cat /etc/docker/daemon.json
{
“bridge”: “br-int”,
“registry-mirrors”: [“https://lg80lp9o.mirror.aliyuncs.com”]
}

#systemctl daemon-reload
#systemctl restart docker

3、启动centos容器,测试容器地址
[root@luyan ~]# docker run -it centos:latest /bin/bash
[root@c25322119715 /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
11: eth0@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:13:40:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.19.64.2/24 brd 172.19.64.255 scope global eth0
valid_lft forever preferred_lft forever
[root@luyan2 ~]# docker run -it --name centos01 centos:latest /bin/bash
[root@28e4183249c7 /]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
5: eth0@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:13:41:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.19.65.2/24 brd 172.19.65.255 scope global eth0
valid_lft forever preferred_lft forever
4、在两台主机上的centos上安装SDN(软件定义网络)openvswitch网桥
安装依赖包
#yum -y install openssl-devel wget kernel-devel
#yum -y install python-six selinux-policy-devel python-sphinx unbound-devel
#yum groupinstall “Development Tools” -y

5、下载源码、解压
#tar -zxvf openvswitch-2.11.1.tar.gz
6、创建编译目录
#mkdir -p rpmbuild/SOURCES
#cp openvswitch-2.11.1.tar.gz rpmbuild/SOURCES/
7、从spec文件中删除openvswitch-kmod的依赖包,并创建一个新的spec文件
#sed ‘s/openvswitch-kmod, //g’
openvswitch-2.11.1/rhel/openvswitch.spec > openvswitch-2.11.1/rhel/openvswitch_no_kmod.spec

8、开始编译

#rpmbuild -bb --without=check ~/openvswitch-2.11.1/rhel/openvswitch_no_kmod.spec

9、安装编译生成的rpm文件

#yum localinstall rpmbuild/RPMS/x86_64/openvswitch-2.11.1-1.x86_64.rpm -y

10、启动服务
#systemctl start openvswitch.service
11、查看服务状态
#systemctl -l status openvswitch.service
12、创建一个sdn openvswitch 网桥
[root@luyan ~]# ovs-vsctl add-br br-docker
13、给sdn openvswitch网桥增加GRE接口
[root@luyan ~]# ovs-vsctl add-port br-docker gre0 – set interface gre0 type=gre options:remote_ip=192.168.1.10
[root@luyan ~]# ovs-vsctl show
994c4372-81eb-4ac9-812a-b28368f308ce
Bridge br-docker
Port “gre0”
Interface “gre0”
type: gre
options: {remote_ip=“192.168.1.10”}
Port br-docker
Interface br-docker
type: internal
ovs_version: “2.11.1”
[root@luyan2 ~]#ovs-vsctl add-br br-docker
[root@luyan2 ~]#ovs-vsctl add-port br-docker gre0 – set interface gre0 type=gre options:remote_ip=192.168.1.9
[root@luyan2 ~]# ovs-vsctl show
e3a0a6b1-1f49-4d2c-963e-f9b0689cec2f
Bridge br-docker
Port br-docker
Interface br-docker
type: internal
Port “gre0”
Interface “gre0”
type: gre
options: {remote_ip=“192.168.1.9”}
ovs_version: “2.11.1”
14、将sdn的br-docker网桥接入到Linux桥
[root@luyan ~]# brctl addif br-int br-docker
[root@luyan ~]# brctl show
bridge name bridge id STP enabled interfaces
br-int 8000.3ab8fef67f81 no br-docker
veth47bfcf3
docker0 8000.02421ce7b0d9 no
[root@luyan2 ~]#brctl addif br-int br-docker
[root@luyan2 ~]# brctl show
bridge name bridge id STP enabled interfaces
br-int 8000.1a2de2681c9a no br-docker
veth2dd4a84
docker0 8000.02424a331027 no
15、在luyan主机上添加路由
[root@luyan ~]# ip route add 172.19.65.0/24 via 192.168.1.10 dev ens33
[root@luyan ~]# ip route
default via 192.168.1.1 dev ens33 proto dhcp metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.19.64.0/24 dev br-int proto kernel scope link src 172.19.64.1
172.19.65.0/24 via 192.168.1.10 dev ens33
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.9 metric 100
16、在luyan2主机上添加路由
[root@luyan2 ~]#ip route add 172.19.64.0/24 via 192.168.1.9 dev ens33
[root@luyan2 ~]# ip route
default via 192.168.1.1 dev ens33 proto dhcp metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.19.64.0/24 via 192.168.1.9 dev ens33
172.19.65.0/24 dev br-int proto kernel scope link src 172.19.65.1
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.10 metric 100


图3.3.2-1 跨主机容器间互ping IP地址(1)

图3.3.2-2 跨主机容器间互ping IP地址(2)

3.4 数据卷容器来备份、恢复、迁移数据卷
3.4.1利用Compose部署一个HTTP环境,并且可以自动运行HTTP的页面
1、创建工作目录
[root@luyan ~]#mkdir http6-18
[root@luyan ~]# cd http6-18/
2、编写Dockerfile
[root@luyan http6-18]# cat Dockerfile
FROM centos
RUN yum install httpd -y
EXPOSE 80
CMD [“-D”,“FOREGROUND”]
ENTRYPOINT [“/usr/sbin/httpd”]
3、编写docker-compose,yml文件
[root@luyan http6-18]# cat docker-compose.yml
version: ‘3’
services:
http:
build: .
restart: always
ports:
- “9100:80”
4、创建应用
[root@luyan ~]#docker-compose up
5、查看容器状态
[root@luyan http6-18]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
21081f3280d2 http618_http “/usr/sbin/httpd -D …” 8 minutes ago Up 8 minutes 0.0.0.0:9100->80/tcp http618_http_1
6、访问网页
http://192.168.2.229:9100

图3.4.1-1 HTTP环境界面

3.4.2利用数据卷容器来备份、恢复、迁移数据卷
1、先使用ubuntu镜像创建一个database容器
[root@luyan ~]# docker run -it -v /database --name database ubuntu:latest
2、在容器中的/database目录下创建ly01,ly02两个文件,并查看这两个文件
root@35c89e53671a:~# cd database/
root@35c89e53671a:~/database# ls
ly01 ly02
3、数据备份
首先使用 --volumes-from 标记来创建一个加载 database 容器卷的容器,并从主机挂载当前目录到容器的 /backup 目录。命令如下:
[root@luyan ~]# docker run --volumes-from database -v $(pwd):/backup ubuntu:latest tar -cvf /backup/backup.tar /database
4、解压并查看文件
[root@luyan ~]# tar -xvf backup.tar
database/
database/ly01/
database/ly02/
[root@luyan ~]# ls database/
ly01 ly02
5、数据恢复
如果要恢复数据到一个容器,首先创建一个带有空数据卷的容器database2
[root@luyan ~]# docker run -v /database --name database2 ubuntu:latest /bin/bash
然后创建另一个容器,挂载 database2 容器卷中的数据卷,并使用tar 解压备份文件到挂载的容器卷中
[root@luyan ~]# docker run --volumes-from database2 -v $(pwd):/backup ubuntu:latest tar -xvf /backup/backup.tar
database/
database/ly01/
database/ly02/
6、数据迁移
为了查看/验证恢复的数据,可以再启动一个容器挂载同样的容器卷来查看
[root@luyan ~]# docker run --volumes-from database2 ubuntu:latest /bin/ls /database
ly01
ly02

图3.4.2-1 数据备份,解压并查看文件


图3.4.2-2 数据恢复并解压文件


图3.4.2-3 数据迁移

3.5 掌握Docker Swarm集群的自动编排和发现功能
3.5.1 Docker Swarm环境安装
1、分别在luyan和luyan02两台主机上进行这些操作
1)修改主机名
#hostnamectl set-hostname luyan
#hostnamectl set-hostname luyan02
2)建立主机映射关系
[root@luyan ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.5 luyan
192.168.1.7 luyan02
3)关闭防火墙
[root@luyan ~]# iptables -F
[root@luyan ~]# iptables -X
[root@luyan ~]# iptables -Z
[root@luyan ~]# /usr/sbin/iptables-save
4)在/usr/lib/systemd/system/docker.service服务的配置文件里加入端口监听,实现监听同一端口
[root@luyan ~]# vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
–insecure-registry 192.168.1.5:5000
5)重新启动docker
[root@luyan ~]# systemctl daemon-reload
[root@luyan ~]# systemctl restart docker
6)验证端口监听状态
[root@luyan ~]# netstat -anlp | grep 2375
tcp6 0 0 :::2375 ::

Docker搭建+项目实训(多次的作业的综合)相关推荐

  1. 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(二)-docker安装与学习

    目录 前言: 一.docker安装 1.centos7使用yum安装 二.命令行创建 docker 容器测试 前言: 项目实训立项通过后的几天均在学习 docker 的相关知识,上一篇文章也简单记述了 ...

  2. 山东大学软件学院项目实训-创新实训-网络安全靶场实验平台(一)

    目录 前言 一.项目介绍 二.项目框架 三.个人分工 四.本周任务完成情况 4.1  Vue安装 4.1.1 node.js安装及配置 4.1.2 安装vue及脚手架 4.1.3 运行Vue项目 4. ...

  3. 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(六)-SQL注入数字型

    目录 前言: 一.SQL 注入漏洞简介 1.简介 2.危害 3.利用 4.防范 二.相关配置 三.编写"SQL 注入漏洞-数字型注入"后端代码 1.使用 springboot 框架 ...

  4. 【项目实训】七牛云测试域名过期后所能采用的方法

    (第四周)文章一 背景 项目实训的图床是使用七牛云搭建的,但是目前还未验收其测试域名就将要过期,需要找到合适的方法来补救 方法 方法一:新建一个新的仓库 目前新建一个新的存储是不需要资金的,新建存储的 ...

  5. 项目实训2021.06.28

    项目实训题目是关键词泛化,被分到第三小组服务展现,要求分别实现两个接口. 接口一:输入语料.输出关键词. 接口二:输入关键词.输出同义词. 要求用Flask框架实现.第一天先了解了关键词泛化的含义,简 ...

  6. 项目实训(校园互助平台)

    项目实训 前言 一.开题答辩(3月11号) 二.准备阶段 1.任务分配(3月12日) 2.购买服务器,搭建服务器(3月13日) 3.购买域名,申请备案(3月15日-3月20日) 4.域名备案成功,添加 ...

  7. 项目实训 - 智能车系统 - 第七周记录

    项目实训 - 智能车系统 - 第七周记录 日期:4.04 – 4.10 项目进度 本周工作进展: 更换了底层的通信框架(shm) 熟悉速腾雷达驱动,以及ros相关驱动,为二次开发驱动做准备 1.更换底 ...

  8. c语言小车寻迹实训报告,循迹小车项目实训报告.doc

    循迹小车项目实训报告 寻迹小车的设计与制作实训报告 课程名称: C51程序设计 EDA技术 专业班级: 应电0935班 指导老师: 方跃春 谭刚林 小组成员: 黄春桥 汤政 孙巍明 阳毅 实训项目要求 ...

  9. 视频教程-C++微服务架构及安全云盘项目实训-C/C++

    C++微服务架构及安全云盘项目实训 夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真,计算机视觉,嵌入式图像处理,云安全审 ...

最新文章

  1. OpenERP与Python 元编程
  2. 重磅 | 激活数据价值 阿里云推出云原生数据库备份DBS新版本
  3. eureka 其它语言_SpringCloud之Eureka-Go语言中文社区
  4. vertical-align属性探究
  5. koa如何实现Oauth2(一)
  6. java冒泡怎么写_java 冒泡 又一种写法
  7. 搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了(五)
  8. PHP开启输出错误信息
  9. XcodeGhost事件或成年内最严重信息安全事件
  10. Firefox扩展插件开发extension代码调试方法
  11. 2021 运维面试1800道题 都掌握 面试已经无敌了 看答案来吧
  12. 阿铭Linux_传统IDC 部署网站学习笔记20190125
  13. 2020-10-27
  14. 失业登记对养老保险是否有影响
  15. 数据结构里怎么只根据邻接表写出深度优先搜索和广度优先搜索序列
  16. Python搭建代理池爬取拉勾网招聘信息
  17. 设置esxi主机时间
  18. 商城系统开发,使用微信服务号好?还是小程序?
  19. html 插入 排班表,怎么用Word制作排班表,手把手教你学会
  20. Hibernate2:构建单例模式的SessionFactory

热门文章

  1. lucene配置动态域_学位论文查重中如何使用Lucene全文检索
  2. Java 将表格数据导入word文档中
  3. ACP敏捷9.敏捷应用场景
  4. 开源盛世 Linux 资源导航 —★—
  5. DataPipeline丨LinkedIn元数据之旅的最新进展—Data Hub
  6. String类 Object类 System类 Math类 Date类 Calendar类 DateFormat类
  7. ios平台微信的语音文件AUD格式其实就是AMR格式
  8. 迈入发展期的信创,更需夯实基础
  9. matlab 场仿真,利用MATLAB软件实现温度场的仿真
  10. Visual Studio Code + SDCC开发51单片机 1 - 环境安装