docker

docker基本组成

docker文档网址:https://docs.docker.com/

镜像(image):

docker镜像好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像==>run==>tomcat01容器,

通过这个镜像可以创建多个容器,最终服务运行或者项目运行就是在容器中的

容器(container):

docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建的

启用,停止,删除,基本命令, 目前就可以把这个容器理解为就是一个简易的linux系统

仓库(repostitory):

docker就是存放镜像的地方

仓库分为共有仓库和私有仓库!

安装

环境准备

1.linux基础

2.centos7

系统内核是3.10以上的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jiOpcRSx-1619059968893)(C:\Users\lenovo\AppData\Local\Temp\1592378036822.png)]

开始安装

1.先卸载旧版本的docker

yum list installed | grep dockeryum remove docker-ce.x86_64 docker-ce-cli.x86_64 -yrm -rf /var/lib/docker

2.在新主机上首次安装Docker Engine之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker

yum install -y yum-utils

3.设置镜像的仓库 https://dqun6srk.mirror.aliyuncs.com dzt账户的镜像加速地址

yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo   这个是国外的仓库地址
yum-config-manager \--add-repo \https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo   使用这个阿里云的镜像

4.安装之前再更新一下yum的索引

yum makecache fast

5.安装最新版本的Docker Engine和容器

yum install docker-ce docker-ce-cli containerd.io

6.启动docker

systemctl start docker

7.是否安装成功

docker version

8.拉取hello-world

docker pull hello-world

9.卸载docker

 yum remove docker-ce docker-ce-cli containerd.io   卸载依赖rm -rf /var/lib/docker                               删除资源

aliyun镜像加速

1.登录阿里云,找到镜像加速地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W2zL3rYv-1619059968895)(C:\Users\lenovo\AppData\Local\Temp\1592382753321.png)]

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": ["https://dqun6srk.mirror.aliyuncs.com"]

}

EOF

sudo systemctl daemon-reload

sudo systemctl restart docker

底层原理

docker是怎么工作的?

docker是一个client-server结构的系统,docker的守护进程运行在宿主机上,通过socket从客户端访问!

dockerserver接收到docker-client的指令,就会执行这个命令!

docker为什么比vm快?

1.docker有着比虚拟机更少的抽象层

2.docker利用的是宿主机的内核,虚拟机使用的是自己的内核

所以说,新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导,

虚拟机是加载Guest OS,分钟级别的,而docker是利用宿主机的操作系统,省略了复杂的过程,秒级

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oPBWV3Jz-1619059968897)(C:\Users\lenovo\AppData\Local\Temp\1592384634999.png)]

docker常用命令

帮助命令

docker version docker的版本信息

docker info 显示docker的系统信息 包括镜像和容器的数量

docker --help 帮助命令

镜像命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jHy1jbZh-1619059968901)(C:\Users\lenovo\AppData\Local\Temp\1592385176128.png)]

docker search 搜索镜像

docker search --filter =STARS=3000 镜像的star>3000的

docker pull 拉取镜像

docker pull xx:tag 拉取对应版本的镜像

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-izhOTuTY-1619059968905)(C:\Users\lenovo\AppData\Local\Temp\1592385500310.png)]

指定版本下载: docker pull mysql:5.7

docker rmi xx 删除镜像

docker rmi -f $(docker images -aq) 递归删除所有镜像

容器命令

核心: docker run

docker run [可选参数] image

参数说明

--name="name" 容器名字

-d 后台方式运行

-it 使用交互方式运行,进入容器查看内容

-P 指定容器的端口 -p 8080:8080

-p 随机指定端口

docker run -it centos /bin/bash 启动并进入容器

docker ps 查看正在运行的容器

docker ps -a 列出当前正在运行的容器以及历史运行过的容器

docker ps -a -n=1 列出当前正在运行的容器以及历史运行过的容器并指定个数

docker ps -aq 列出当前正在运行的容器以及历史运行过的容器只显示ID编号

退出容器

exit 直接停止容器并退出

ctrl +pq 退出容器但不停止容器

删除容器

docker rm 容器名/容器ID 删除指定容器

docker rm -f 强制删除所有容器(包括正在运行的容器)

启动和停止容器

docker start 容器ID 启动容器

docker restart 容器ID 重启容器

docker stop 容器ID 停止容器

docker kill 容器ID 强制杀掉容器

常用其他命令

docker logs -f -t --tail 行数 容器ID

-tf 显示日志 --tail 显示日志条数

查看容器中进程信息

docker top 容器ID

查看镜像的元数据信息

docker inspevct 容器ID

进入当前正在运行的容器

通常容器都是使用后台的方式运行的,需要进入容器,修改一些配置

方式一: docker exec -it 容器ID /bin/bash

方式二: docker attach 容器ID

以上两种

一 是进入容器打开一个新的终端,可以在里面操作

二是进入容器正在执行的终端,不会启动新的进程

从容器内拷贝文件到主机上

docker cp 容器ID:容器内路径 宿主机路径

从宿主机拷贝文件到容器

docker cp /opt/test/file.txt mycontainer:/opt/testnew/

将容器生成新的镜像

 docker commit --author "dyh <dyh@126.com>" --message "修改默认网页" 容器ID nginx:v2

docker安装Nginx

docker pull nginx

docker run -d --name nginx01 -p 80:80 nginx

docker安装tomcat

docker run -it --rm tomcat:8.5 此命令为下载完启动,停止后即刻删除

docker安装es+kibana

es暴露的端口很多

es十分的消耗内存

es数据一般需要放置到安全目录挂载

–net somenetwork 网络配置

docker pull elasticsearch:7.6.2

启动es

xxxdocker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2

启动后发现非常卡顿,docker stats查看状态 发现内存占比非常高

那么改变一下启动命令,添加上最大堆内存的限制:

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx256m" elasticsearch:7.6.2

docker安装运行kibana后连接es,那么网络的配置是十分关键的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YRX2BgZj-1619059968909)(C:\Users\lenovo\AppData\Local\Temp\1592407843888.png)]

所以进到容器里对配置文件进行修改

docker exec -it 容器ID /bin/bash

vi confg/elasticsearch.yml

内容如下:

network.host: 0.0.0.0

http.cors.enabled: true

http.cors.allow-origin: “*”

重启es容器

docker restart 容器ID

kibana

docker pull kibana:7.6.2

运行

docker run -di --name kibana -e ELASTICSEARCH_URL=http://内网IP:9200 -p 5601:5601 kibana:7.6.2

进入容器修改配置

docker exec -it 容器ID /bin/bash

vi config/kibana.yml

内容:

elasticsearch.hosts: [ "http://es的IP(内网):9200" ]

重启kibana容器

docker restart 容器ID

docker安装redis

拉取镜像

docker pull redis:latest

运行

docker run -itd --name redis-test -p 6379:6379 redis

进入容器

docker exec -it redis-test /bin/bash

使用客户端

redis-cli

docker 镜像深入

镜像是什么?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DH0uYpvR-1619059968911)(C:\Users\lenovo\AppData\Local\Temp\1592467531912.png)]

如何得到镜像:

  1. 仓库下载镜像
  2. 制作镜像 DockerFile

docker镜像加载原理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dvT7d9PA-1619059968912)(C:\Users\lenovo\AppData\Local\Temp\1592467662903.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IiNeNP1v-1619059968914)(C:\Users\lenovo\AppData\Local\Temp\1592467740673.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K8NlbKpg-1619059968915)(C:\Users\lenovo\AppData\Local\Temp\1592467949173.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-heU9DONz-1619059968917)(C:\Users\lenovo\AppData\Local\Temp\1592467998968.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YbrTcznB-1619059968919)(C:\Users\lenovo\AppData\Local\Temp\1592468013446.png)]

特点:

docker镜像都是只读的,但是容器启动后,一个新的可写层被加载到镜像的顶部,

这一层就是我们通常说的容器层,那么也可以将这容器层和原有的镜像层重新打包成一个新的镜像

如何提交自己的镜像?

docker commit 提交容器成为一个新的副本docker commit -m="描述信息"  -a="作者"  容器ID  目标镜像名:tag

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MM7VtDRN-1619059968920)(C:\Users\lenovo\AppData\Local\Temp\1592470959791.png)]

容器数据卷

数据问题

如果没有对数据的目录做处理,那么当容器删除后,容器中的数据也会丢失掉

需求: 数据可持久化

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CGMLKGUa-1619059968921)(C:\Users\lenovo\AppData\Local\Temp\1592472167104.png)]

核心: 容器的持久化和同步操作! 容器之间也是可以数据共享的

使用数据卷

方式一: 直接使用命令来挂载 -v

docker run -d -v 主机目录:容器目录 容器ID

其实就是实现了这两个对应目录的双向绑定,但凡其中一个目录发生变化,另一个目录也会跟着变化

所以:

比如修改配置文件,我们就可以直接在宿主机上进行修改,然后通过-v挂载目录,将宿主机目录同步到容器内

mysql示例:

mysql数据持久化的问题?

1.获取镜像
docker pull mysql:5.7
2.运行,进行数据挂载,  注意:mysql启动需要配置账号密码docker run -d -p 3307:3306 -v /opt/tmp/mysql/conf/:/etc/mysql/conf.d
-v /opt/tmp/mysql/data/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1314youni@..
--name mysql01  mysql:5.73.启动后宿主机的本地目录便会生成刚才启动命令中的挂载目录以及文件,我们对mysql进行写数据,之后将容器停掉删除,但是数据仍然会存在于宿主机中

具名挂载和匿名挂载

匿名挂载

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yS88WIuo-1619059968922)(C:\Users\lenovo\AppData\Local\Temp\1592474474472.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vrfva9vE-1619059968924)(C:\Users\lenovo\AppData\Local\Temp\1592474528255.png)]

所有的docker容器内的卷,没有指定目录的情况下都是在 /var/lib/docker/volumes/卷名/_data

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yWBfo7Fw-1619059968925)(C:\Users\lenovo\AppData\Local\Temp\1592474740497.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W9h1Dmoq-1619059968926)(C:\Users\lenovo\AppData\Local\Temp\1592487906075.png)]

DockerFile

dockerFile就是用来构建镜像的构建文件

初体验:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E3Vk5wcF-1619059968927)(C:\Users\lenovo\AppData\Local\Temp\1592488612240.png)]

构建步骤:

1.编写一个dockerfile文件

2.docker build 构建成一个镜像

3.docker run 运行镜像

4.docker push 发布镜像 (DockerHub ,阿里云镜像仓库)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qU4K2xN4-1619059968928)(C:\Users\lenovo\AppData\Local\Temp\1592490011716.png)]

DockerFile构建过程

指令:

1.每个关键字都必须是大写字母

2.执行从上至下

3.#表示注释

4.每一个指令都会创建提交一个新的镜像层,并提交!

dockerFile是面向开发的,发布项目需要编写dockerFile文件!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JKcHeVzk-1619059968929)(C:\Users\lenovo\AppData\Local\Temp\1592490582035.png)]

FROM     基础镜像
MAINTAINER   镜像作者-> 姓名+邮箱
RUN         镜像构建成功后要运行的命令
ADD         步骤:构建的镜像要加什么模块 比如基础镜像centos,这里可以加jdk,tomcat等等
WORKDIR     镜像的工作目录
VOLUMN      挂载的目录
EXPOSE      指定要暴露的端口
RUN         容器启动后要做的事情
CMD         指定这个容器启动的时候要做的事情,只有最后一个会生效,可被替代
ENTRYPOINT  指定这个容器启动的时候要做的事情,不会被替代,命令是可追加的
ONBUILD     当构建一个被继承 DockerFile 这个时候就会运行ONBUILD的指令,触发指令
COPY        类似add命令将文件拷贝到镜像中
ENV         构建的时候设置环境变量

构建自己的centos

大多数镜像的基础镜像-> FROM scratch,然后配置需要的软件和配置来进行的构建

编写dockerfile文件

FROM centos                        #基础镜像
MAINTAINER dzt<1866735017@163.com>   #作者ENV MYPATH /usr/local
WORKDIR  $MYPATH            #设置进入容器后默认的目录RUN   yum -y install  vim
RUN   yum -y install  net-tools
EXPOSE 80                   #暴露80端口
CMD   echo  $MYPATH
CMD   echo  "end..."
CMD   /bin/bash

执行文件,开始构建

docker build -f dockerfile-centos -t dzt_centos:0.1 .

测试运行

CMD 和 ENTRYPOINT区别

CMD: 指定这个容器启动的时候要做的事情,只有最后一个会生效,可被替代
ENTRYPOINT: 指定这个容器启动的时候要做的事情,不会被替代,命令是可追加的

示例:tomcat镜像

1.准备镜像文件 tomcat压缩包,jdk压缩包

2.编写dockerfile,如果名字为Dockerfile,开始构建的时候就不需要-f 来指定文件了

发布镜像至dockerhub

1.地址https://hub.docker.com/ 注册自己的账号!(账号:cmdidocker 密码:通用)

2.docker login 在centos上登录docker

3.登录成功后即可 docker push 镜像:tag

失败: 如若出现denied: requested access to the resource is denied

说明该镜像没有账号信息,或者账号信息不正确

例: docker push dzt/xxx:1.0 此处dzt要和dockehub上的账号名称相对应

可以使用命令修改账号信息: docker tag 镜像ID 作者/镜像名:tag

发布镜像至阿里云

1.登录阿里云,找到容器镜像服务

2.创建命名空间

3.创建镜像仓库

4.然后参考文档一步步执行就可以了

离线保存镜像

docker save -o /路径/xx.tar 镜像ID 将镜像保存至本地路径

docker load -i /opt/xx.tar 将本地tar包生成镜像

1. 登录阿里云Docker Registry
$ sudo docker login --username=前方有你dzt registry.cn-beijing.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。您可以在访问凭证页面修改凭证密码。2. 从Registry中拉取镜像
$ sudo docker pull registry.cn-beijing.aliyuncs.com/dzt/dzt-test:[镜像版本号]
3. 将镜像推送到Registry
$ sudo docker login --username=前方有你dzt registry.cn-beijing.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-beijing.aliyuncs.com/dzt/dzt-test:[镜像版本号]
$ sudo docker push registry.cn-beijing.aliyuncs.com/dzt/dzt-test:[镜像版本号]

数据卷容器

定义: 也就是此容器 和其他容器之间能够实现数据的共享,互通有无,并且任何一个容器宕机并不会影响其他容器的数据

命令:

docker run -d --name docker02 --volumes-from docker01 镜像ID

--volumes-from: 类似于java中的继承关系 -> extends

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZdIjURam-1619059968930)(C:\Users\lenovo\AppData\Local\Temp\1592489581906.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kikU2Qmt-1619059968931)(C:\Users\lenovo\AppData\Local\Temp\1592489781494.png)]

Docker网络

理解docker网络

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dmJZEvVk-1619059968932)(C:\Users\lenovo\AppData\Local\Temp\1592728998842.png)]

docker如何处理容器间的网络访问?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7DoZSJ7R-1619059968934)(C:\Users\lenovo\AppData\Local\Temp\1592729063472.png)]

查看容器内部的网络地址

docker exec -it tomcatxx ip addr

linux宿主机可以ping 通docker容器
docker容器内部也可以ping 通linux宿主机

原理

1.我们每启动一个docker容器,docker就会给docker容器分配一个IP,我们只要安装了docker ,就会有一个docker0

使用的就是桥接模式,使用的技术是evth-paie技术

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EX9Y4Pgt-1619059968936)(C:\Users\lenovo\AppData\Local\Temp\1592730292160.png)]

我们发现容器的网卡都是成对出现的

evth-pair  就是一对的虚拟设备接口,成对出现,一边连着协议,一边连着彼此
正因为这个特性,evth-pair充当一个桥梁,连接各种虚拟网络设备的

所以发现 两个容器内 是可以 ping通的

网络模型图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aX3m7Ej3-1619059968937)(C:\Users\lenovo\AppData\Local\Temp\1592730677160.png)]

结论:tomcat01和tomcat02是共有的一个路由器,docker0

所有的容器不指定网络的情况下,都是docker0路由的,docker会给我们分配一个默认的可用的IP

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8f81FRH8-1619059968938)(C:\Users\lenovo\AppData\Local\Temp\1592730954145.png)]

场景[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z51NDeRd-1619059968939)(C:\Users\lenovo\AppData\Local\Temp\1592731049922.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZySLYPbi-1619059968940)(C:\Users\lenovo\AppData\Local\Temp\1592731085347.png)]

可以看到正常情况下在容器内部 ping 另一个容器的名字是ping 不通的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l7vtzWeF-1619059968941)(C:\Users\lenovo\AppData\Local\Temp\1592731175778.png)]

反向可以ping 通吗?

不可以的

那么 通过–link就可以实现通过容器名字 ping另一个容器的网络

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JprGqjDK-1619059968942)(C:\Users\lenovo\AppData\Local\Temp\1592731514426.png)]

但是,不推荐使用

现在都是用自定义网络!

自定义网络

查看所有的docker网络

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sTuvOPC6-1619059968943)(C:\Users\lenovo\AppData\Local\Temp\1593070531459.png)]

网络模式:

bridge: 桥接 (默认.自己创建也是用桥接模式)

none: 不配置网络

host: 主机模式(和宿主机共享网络)

container: 容器内网络连通(用的少)

测试:

修改本地镜像容器存储路径方法

修改Docker本地镜像与容器的存储位置的方法

方法一、软链接

默认情况下Docker的存放位置为:/var/lib/docker
可以通过下面命令查看具体位置:

sudo docker info | grep "Docker Root Dir"1

解决这个问题,最直接的方法当然是挂载分区到这个目录,但是我的数据盘还有其他东西,这肯定不好管理,所以采用修改镜像和容器的存放路径的方式达到目的。

这个方法里将通过软连接来实现。

首先停掉Docker服务:

systemctl restart docker
或者
service docker stop123

然后移动整个/var/lib/docker目录到目的路径:

mv /var/lib/docker /root/data/docker
ln -s /root/data/docker /var/lib/docker12

这时候启动Docker时发现存储目录依旧是/var/lib/docker,但是实际上是存储在数据盘的,你可以在数据盘上看到容量变化。

容器随docker的启动而启动

容器启动命令 跟随docker的启动容器也启动  在启动命令中加 --restart=always  如果容器已经启动了,不想重启也是可以修改的  docker update 容器ID --restart=always

Docker-centos安装docker及docker命令相关推荐

  1. win7 docker centos安装mysql_win7下docker环境centos容器中安装mysql5.7

    docker环境基于镜像skiychan/nginx-php7,进行安装 ps:skiychan/nginx-php7此镜像已封装nginx1.15.3+php7.2.9 1.环境配置 配置共享文件夹 ...

  2. Docker Centos安装 Openssh

    Docker Centos安装Openssh 环境介绍: Docker版本:1.5.0 镜像:docker.io:centos latest 操作步骤: 1.启动镜像 docker run -ti c ...

  3. centos 7 局域网丢包排查_一文掌握docker centos 安装python3.7「精品」

    今天我将通过下文,详细向大家介绍如何在docker下安装python3.7,当然是在centos中: 一.获取centos镜像 docker pull centos:centos7 二.查看容器 do ...

  4. 【Docker】安装部署 及相关命令

    Docker安装部署 及相关命令 前言 一.安装Docker 1.yum包更新到最新 2. 安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicema ...

  5. docker 20安装教程及常见命令详解

    本文笔记学习来自B站狂神说 视频链接: https://www.bilibili.com/video/BV1og4y1q7M4?p=14 docker安装 先卸载系统之前的老版本docker sudo ...

  6. Centos 安装和卸载docker

    文章目录 docker 概述 安装docker 卸载docker docker 概述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流 ...

  7. CentOS上Docker的安装卸载及Docker简介

    文章目录 docker的安装 Linux设备要求 1.安装相关编译环境 2.安装Docker 3.启动和停止 测试hello-world 卸载Docker docker简介 什么是docker Doc ...

  8. docker centos7 安装mysql_centos7通过docker安装mysql

    1. 启动docker systemctl start docker: 2.查看mysql 版本 docker search mysql: 3. 安装最新mysql docker pull mysql ...

  9. Docker的安装和使用说明——Docker for Windows

    一.Docker安装 1.1官方方法 官方下载页面:http://www.docker.com/products/docker#/windows 官方下载地址:https://download.doc ...

  10. docker 离线安装_企业级Docker私库Harbor安装详解

    Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,Harbor提供了基于角色的访问控制机制,并通过项目来对镜像进行组织和访问权限的控制 1:安装 Docker-compo ...

最新文章

  1. eclipse 工程复制
  2. RT-Thread逐飞-智能车培训之RT-Thread在全向行进组中的应用
  3. Qt: MinGW 与MSVC的区别
  4. [SCOI 2010]传送带
  5. 线程间同步的几种方法--互斥锁,条件变量,信号量,读写锁
  6. Android之Notification初识
  7. ICCV 2019 | 旷视提出新型抠图方法AdaMatting,刷新最高精度
  8. php 去除变态空格字符方法,空格trim不掉问题解决思路
  9. 随笔之生成简单的验证码
  10. Python UDP broadcast PermissionError: [Errno 13] Permission denied
  11. matlab三极管名称,贴片三极管上的印字(与真实名称的对照表)(7)
  12. 美国TOP100大学优势专业位置分布!长篇吐血整理!
  13. 模拟信号拉线位移编码器是如何来校准的?
  14. android go分析和评述,Pathway和GO功能分析及显著性判断
  15. 快速寻找9位数内的自幂数
  16. Jlink命令行烧录
  17. 【题解】codeforces765F Souvenirs
  18. 乳山金岭中学校计算机老师,乳山市金岭中学
  19. 2021年中国地图省市县区边界shp格式arcgis数据(预览图)
  20. 微信公众号如何接入微信机器人

热门文章

  1. 自动化软件测试工程师(初面)面试题解析(含答案)
  2. **惠普GK100机械键盘设置**
  3. ​stp文件转ply
  4. 全国增值税发票查验平台 | 免验证码
  5. LeetCode 题解随笔:贪心算法
  6. modbus串口调试助手 MODBUS调试 智能仪表通讯必备软件 RS485串口通讯
  7. 科技交流英语(2022秋)Unit 5 test
  8. 计算机英文收集(二)
  9. html格式错误检测,HTML格式错误
  10. HDU 6304 Chiaki Sequence Revisited(找规律)