文章目录

  • 一、Docker容器操作
    • 1、容器创建
    • 2、查看容器的运行状态
    • 3、启动容器
    • 4、创建并开启容器
    • 5、终止容器运行
    • 6、容器的进入
    • 7、复制文件到容器中/宿主机中
    • 8、容器的导出与导入
    • 9、删除容器
  • 二、Docker网络
    • 1、Docker网络实现原理
    • 2、Docker的网络模式
  • 三、网络模式详解
    • 1、host模式
    • 2、container模式
    • 3、none模式
    • 4、bridge模式
    • 5、自定义网络
  • 四、CPU资源控制
    • 1、cgroups概述
    • 2、cgroups的四大功能
    • 3、设置CPU使用率上限
    • 4、设置CPU资源占用比(设置多个容器时才有效)
    • 5、设置容器绑定指定的CPU
  • 五、对内存使用的限制
    • 1、创建指定物理内存的容器
    • 2、创建指定物理内存和swap的容器
    • 1、设置限制项
    • 2、创建容器,并限制写速度
    • 3、通过dd来验证写速度
    • 4、清理docker占用的磁盘空间
  • 六、Docker的数据管理
    • 1、管理Docker容器的方式
    • 2、数据卷
    • 3、数据卷容器
  • 七、容器互联(使用centos镜像)
    • 1、定义
    • 2、创建容器互联

一、Docker容器操作

1、容器创建

将镜像加载到容器的过程。新创建的容器默认处于停止状态,不运行任何程序,需要在其中发起一个进程来启动容器

格式∶docker create [选项]镜像常用选项∶
-i∶让容器的输入保持打开
-t∶让Docker分配一个伪终端docker create -it nginx:latest bash    #bash为系统命令/bin/bash、/usr/bin/bash的缩写

2、查看容器的运行状态

docker ps -a       #-a 选项可以显示所有的容器,不加-a只显示运行的容器

3、启动容器

docker start 容器的ID/名称docker ps -a

4、创建并开启容器

(1)格式

docker run 镜像 bash -c shell命令例如:docker run nginx:latest bash -c ls /  #会发现创建了一个新容器并启动执行一条 shell 命令,容器将这条命令作为第一个进程,命令执行完毕后容器的第一个进程也关闭则容器就停止了

(2)docker run运行过程

可以直接执行 docker run 命令,等同于先执行 docker create 命令,再执行 docker start 命令。
注意∶容器是一个与其中运行的 shell 命令共存亡的终端,命令运行容器运行,命令结束容器退出。
docker 容器默认会把容器内部第一个进程,也就是 pid=1 的程序作为docker容器是否正在运行的依据,如果docker容器中pid = 1 的进程挂了,那么docker容器便会直接退出,也就是说Docker容器中必须有一个前台进程,否则认为容器已经挂掉。
当利用 docker run 来创建容器时,Docker 在后台的标准运行过程是∶
(1)检查本地是否存在指定的镜像。当镜像不存在时,会从公有仓库下载
(2)利用镜像创建并启动一个容器
(3)分配一个文件系统给容器,在只读的镜像层外面挂载一层可读写层
(4)从宿主主机配置的网桥接口中桥接一个虚拟机接口到容器中
(5)分配一个地址池中的 IP 地址给容器;
(6)执行用户指定的应用程序,执行完毕后容器被终止运行

(3)在后台持续运行docker run创建的容器

需要在docker run命令之后添加 -d 选项让 Docker 容器以守护形式在后台运行。并且容器所运行的程序不能结束。
docker run -d nginx:latest bash -c "while true;do echo hello;done"
docker ps -a      #可以看出容器始终处于UP,运行状态docker run -itd --name test1 nginx:latest bash

5、终止容器运行

格式∶ docker stop 容器的ID/名称
docker stop [-t] de7091f9d88e       #-t指定等待多少秒后直接kill该容器,默认10秒docker ps -a格式:docker kill 容器的ID/名称
docker kill c14bf5853a5edocker ps -a#kill和stop区别在于stop会通知容器需要进行关闭,在等待10S左右关闭容器,预留一个服务缓存数据保存的时间,而kill会立刻关闭容器,缓存在内存中的数据有可能会直接丢失

6、容器的进入

格式∶ docker exec -it 容器ID/名称 /bin/bash
-i 选项表示让容器的输入保持打开
-t 选项表示让 Docker 分配一个伪终端

7、复制文件到容器中/宿主机中

echo "hello world" > ~/test.txt      #在当前目录创建一个文件,然后复制到容器中
docker cp ~/test.txt 924756260cb1:/opt/#从容器复制文件到主机
docker cp 924756260cb1:/opt/test.txt ~/abc123.txt

8、容器的导出与导入

用户可以将任何一个Docker容器从一台机器迁移到另一台机器。在迁移过程中,可以使用docker export命令将已经创建好的容器导出为文件,无论这个容器是处于运行状态还是停止状态均可导出。可将导出文件传输到其他机器,通过相应的导入命令实现容器的迁移

(1)导出

docker export 容器ID/名称 >文件名
docker export 5c48f0d8de05 > nginx.tar
scp scp nginx.tar 192.168.80.12:/opt

(2)导入

cat 文件名 | docker import - 镜像名称:标签
cat nginx.tar | docker import - nginx:test docker run -itd --name jc 0553d2743bba bash   #重新创建容器

9、删除容器

#需要先停止容器进行删除,如果强制删除运行状态容器需要加上“-f”,rmi为删除镜像仓库,而使用rm可以删除容器
格式∶docker rm [-f] 容器ID/名称
docker stop 容器ID                            #删除已经终止状态的容器
docker rm 容器ID
docker rm -f 容器ID                           #强制删除正在运行的容器#批量停止容器
docker ps -a | awk 'NR>=2{print "docker stop "$1}' | bash
docker ps -a | awk 'NR>=2{print $1}' | xargs docker stop#批量删除所有容器
docker ps -a | awk 'NR>=2{print "docker rm "$1}'| bash
docker ps -a | awk 'NR>=2{print $1}'| xargs docker rm#批量删镜像
docker images | awk 'NR>=2{print "docker rmi "$3}'| bash#删除none镜像
docker images | grep none | awk '{print $3}' | xargs docker rmi#批量清理后台停止的容器
docker rm $(docker ps -a -q)

二、Docker网络

1、Docker网络实现原理

(1)Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的 Container-IP直接通信,默认分配的IP网段为172.17.0.0,docker0为172.17.0.1作为网关

(2)Docker网桥是宿主机虚拟出来的,并不是真实存在的网络设备,外部网络是无法寻址到的,这也意味着外部网络无法直接通过Container-IP 访问到容器。如果容器希望外部访问能够访问到,可以通过映射容器端口到宿主主机(端口映射),即 docker run 创建容器时候通过 -p 或 -P 参数来启用,访问容器的时候就通过 [宿主机IP]:[容器端口] 访问容器

(3)格式

docker run -d --name test1 -P nginx           #-P不指定,随机映射端口(从32768开始)docker run -d --name test2 -p 43999:80 nginx  #-p指定映射端口
docker ps-a浏览器访问∶http://192.168.142.4:49154、http://192.168.142.4:43999

2、Docker的网络模式

(1)五种网络模式

• Host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口

• Container:创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围

• None:该模式关闭了容器的网络功能

• Bridge:默认为该模式,此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及iptables nat表配置与宿主机通信

• 自定义网络

(2)查看docker网络列表

安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络)、none 、host
命令:docker network ls 或 docker network list

(3)指定容器的网络模式

• host模式:使用--net=host 指定
• none模式:使用 --net=none 指定
• container模式:使用--net=container∶NAME or ID指定
• bridge模式:使用 --net=bridge 指定,默认设置,可省略

三、网络模式详解

1、host模式

(1)相当于Vmware中的桥接模式,与宿主机在同一个网络中,但没有独立IP地址

(2)Docker使用了Linux中的Namespaces技术来进行资源隔离,如PID Namesoace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。

(3)一个Network Namespace提供了一份独立的网络环境,包括网卡、路由、iptable规则等都与其他的Network Namespace隔离

(4)一个Docker容器一般会分配一个独立的Network Namespace,但如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡、配置自己的IP等,而是使用宿主机的IP和端口

2、container模式

这个模式指定新创建的容器和已经存在的一个容器共享一个Network
Namespace,而不是和宿主机共享。新创建的容器不会创建自已的网卡,配置自已的IP,而是和一个指定的容器共享IP、端口范围等。同样,两个容器除了网络方面,其他的如文件系统、进程列表等还是隔离的。两个容器的进程可以通过lo网卡设备通信

#新建一个容器
docker run -itd --name jc nginx:latest /bin/bash
docker ps -a
docker inspect -f '{{.State.Pid}}' caccb08b3f68    #查看容器进程号ls -l /proc/6002/ns

docker run -itd --name jc2 --net=container: caccb08b3f68 nginx:latest /bin/bash
docker ps -a
docker inspect -f '{{.State.Pid}}' 7308326d1d99
ls -l /proc/9469/ns

3、none模式

(1)使用none模式,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置
(2)也就是说,这个Docker容器没有网卡、IP、路由等信息。这种网络模式下容器只有lo回环网络,没有其他网卡。这种类型的网络没有办法联网,但封闭的网络能很好的保证容器的安全性

4、bridge模式

(1)bridge模式是docker的默认网络模式,不用–net参数,就是bridge模式

(2)相当于Vmware中的nat模式,容器使用独立network Namespace,并连接到docker0虚拟网卡。通过docker0网桥以及iptables nat表配置与宿主机通信,此模式会为每一个容器分配Network Namespace、设置IP等,并将一个主机上的 Docker 容器连接到一个虚拟网桥上

• 当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中

• 从docker0子网中分配一个IP给容器使用,并设置docker0的IP地址为容器的默认网关。在主机上创建一对虚拟网卡veth pair设备。veth设备总是成对出现的,它们组成了一个数据的通道,数据从一个设备进入,就会从另一个设备出来。因此veth 设备常用来连接两个网络设备

• Docker将 veth pair 设备的一端放在新创建的容器中,并命名为 eth0(容器的网卡),另一端放在主机中,以 veth*这样类似的名字命名,并将这个网络设备加入到 docker0 网桥中。可以通过 brctl show命令查看

• 使用 docker run -p 时,docker实际是在iptables做了DNAT规则,实现端口转发功能。可以使用iptables -t nat -vnL查看

5、自定义网络

#直接使用bridge模式,是无法支持指定IP运行docker的,例如执行以下命令就会报错
docker run -itd --name jc4 --network bridge --ip 172.17.0.10 centos:7 /bin/bash  #创建自定义网络
#可以先自定义网络,再使用指定IP运行docker
docker network create --subnet=172.20.0.0/16 --opt "com.docker.network.bridge.name"="docker1" mynetwork#docker1 为执行 ifconfig -a 命令时,显示的网卡名,如果不使用 --opt 参数指定此名称,那你在使用 ifconfig -a 命令查看网络信息时,看到的是类似br-110eb56a0b22 这样的名字,这显然不怎么好记。
#mynetwork为执行docker network list命令时,显示的bridge网络模式名称docker run -itd --name jc4--net mynetwork --ip 172.20.0.10 centos:7 /bin/bash
ifconfig       #该命令需要安装net-tools

四、CPU资源控制

1、cgroups概述

是一个非常强大的linux内核工具,他不仅可以限制被namespace 隔离起来的资源,还可以为资源设置权重、计算使用量、操控进程启停等等,所以cgroups (Control groups)实现了对资源的配额和度量

2、cgroups的四大功能

(1)资源限制:可以对任务使用的资源总额进行限制
(2)优先级分配:通过分配的cpu时间片数量以及磁盘To带宽大小,实际上相当于控制了任务运行优先级
(3)资源统计:可以统计系统的资源使用量,如cpu时长,内存用量等
(4)任务控制:cgroup可以对任务执行挂起、恢复等操作

3、设置CPU使用率上限

(1)–cpu-period与–cpu-quota

• Linux 通过 CFS(Completely Fair Scheduler,完全公平调度器)来调度各个进程对 CPU 的使用。CFS 默认的调度周期是 100ms,我们可以设置每个容器进程的调度周期,以及在这个周期内各个容器最多能使用多少 CPU 时间

• 使用–cpu-period 即可设置调度周期,使用 --cpu-quota 即可设置在每个周期内容器能使用的 CPU 时间。两者可以配合使用。CFS周期的有效范围是 1ms~1s,对应的 --cpu-period 的数值范围是 1000~100000(微秒)

• 容器的CPU配额必须不小于1ms,即–cpu-quota 的值必须 >= 1000

(2)查看两个配额数值

docker run -itd --name jc1 centos:7 /bin/bash   #创建一个容器docker ps -a
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS        PORTS     NAMES
45509991194c   centos:7   "/bin/bash"   40 seconds ago   Up 39 second             jc1cd /sys/fs/cgroup/cpu/docker/a8116f7815a35d43af77b661fe5846e1e550029c0034d3f84f9fdabd49996bc5/cat cpu.cfs_quota_us
-1cat cpu.cfs_period_us
100000
----------------------------------------------
#cpu.cfs_period_us:cpu分配的周期(微秒,所以文件名中用 us 表示),默认为100000。
#cpu.cfs_quota_us:表示该control group限制占用的时间(微秒),默认为-1,表示不限制如果设为50000,表示占用50000/100000=50%的cpu

(3)进行CPU压力测试

docker exec -it 45509991194c  /bin/bash  #进入容器
写一个死循环脚本
vi cpu.sh
#!/bin/bash
i=0
while true
do
let i++
donechmod +x cpu.sh
./cpu.sh
另开一个终端用top命令查看cpu占比                 #可以看到这个脚本占了很多的cpu资源

(4)设置50%的比例分配CPU使用时间上限

第一种方法:
1.docker run -itd --name jc2 --cpu-quota 50000 centos:7 /bin/bash   #可以重新创建一个容器并设置限额
2.docker exec -it  af6a2c2befe7 /bin/bash  #进入容器
3.写一个死循环脚本来测试
vi cpu.sh
#!/bin/bash
i=0
while true
do
let i++
donechmod +x cpu.sh
./cpu.sh
4.另开一个终端用top命令查看cpu占比
第二种方法:
1.cd /sys/fs/cgroup/cpu/docker/af6a2c2befe7a4b313c7fdd2dda1c4376af2b31cd45cc3b890e95d45b664a1cc/
2.echo 50000 > cpu.cfs_quota_us
3.docker exec -it af6a2c2befe7 /bin/bash
4../cpu.sh
5.另开一个终端用top命令查看cpu占比     

4、设置CPU资源占用比(设置多个容器时才有效)

(1)格式

Docker 通过--cpu-shares 指定 CPU 份额,默认值为1024,值为1024的倍数。
#创建两个容器为 c1 和 c2,若只有这两个容器,设置容器的权重,使得c1和c2的CPU资源占比为1/3和2/3。
docker run -itd --name jc3 --cpu-shares 4096 centos:7 bash
docker run -itd --name jc4 --cpu-shares 12288 centos:7 bash

(2)分别进入容器,进行压力测试

yum install -y epel-release
yum install stress -y
stress -c 4             #产生四个进程,每个进程都反复不停的计算随机数的平方根

(3)查看容器运行状态(动态更新)

docker stats

5、设置容器绑定指定的CPU

(1)先分配虚拟机4个CPU核数

docker run -itd --name jc5 --cpuset-cpus 1,3 centos:7 /bin/bash

(2)进入容器,进行压力测试

docker exec -it cf1c78cbfe79 bashyum install -y epel-release
yum install stress -y
stress -c 4

(3)退出容器,执行top命令再按1查看cpu使用情况

五、对内存使用的限制

1、创建指定物理内存的容器

-m(--memory=)选项用于限制容器可以使用的最大内存
docker run -itd --name jc6 -m 512m centos:7 /bin/bashdocker stats

2、创建指定物理内存和swap的容器

docker run -itd --name jc7 -m 512m --memory-swap 1g centos:7 /bin/bash强调一下,--memory-swap是必须要与--memory一起使用的正常情况下,--memory-swap的值包含容器可用内存和可用swap
所以-m 300m --memory-swap=1g 的含义为:容器可以使用300M 的物理内存,并且可以使用700M (1G - 300M)的swap如果--memory-swap设置为0或者不设置,则容器可以使用的swap大小为-m值的两倍
如果--memory-swap的值和-m值相同,则容器不能使用swap
如果--memory-Swap值为-1,它表示容器程序使用的内存受限,而可以使用的swap空间使用不受限制(宿主机有多少,swap容器就可以使用多少)

六、对磁盘IO配额控制(blkio)的限制

1、设置限制项

--device-read-bps:限制某个设备上的读速度bps(数据量),单位可以是kb、mb(M)或者gb。
例:docker run -itd --name jc8 --device-read-bps /dev/sda:1M  centos:7 /bin/bash--device-write-bps : 限制某个设备上的写速度bps(数据量),单位可以是kb、mb(M)或者gb。
例:docker run -itd --name jc8 --device-write-bps /dev/sda:1mb centos:7 /bin/bash--device-read-iops :限制读某个设备的iops(次数)--device-write-iops :限制写入某个设备的iops(次数)
2、创建容器,并限制写速度

2、创建容器,并限制写速度

docker run -itd --name jc9 --device-write-bps /dev/sda:1mb centos:7 /bin/bash

3、通过dd来验证写速度

docker exec -it cfa60bfee91c bash  #进入容器
dd if=/dev/zero of=test.out bs=1M count=50 oflag=direct #添加oflag参数以规避掉文件系统cache

4、清理docker占用的磁盘空间

docker system prune -a  #可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络

六、Docker的数据管理

1、管理Docker容器的方式

管理Docker容器中数据主要有2种方式:数据卷(Data Volumes)和数据卷容器(DataVolumes Containers)

2、数据卷

(1)定义

数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。数据卷的使用类似于Linux下对目录进行的mount操作

(2)创建格式

docker run -itd -v /var/www:/data1 --name web1 centos:7 /bin/bash  #宿主机目录/var/www挂载到容器中的/data1-v:在容器内创建数据卷
注意:宿主机本地目录的路径必须是使用绝对路径。如果路径不存在,Docker会自动创建相应的路径

(3)创建文件测试

1.在宿主机的挂载目录创建文件测试数据卷
2.在数据卷创建文件测试宿主机的挂载目录

3、数据卷容器

(1)定义

如果需要在容器之间共享一些数据,最简单的方法就是使用数据卷容器。数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用

(2)创建一个容器作为数据卷容器

docker run -itd --name web2 -v /data1 -v /data2 -v /data3 centos:7 /bin/bash
docker exec -it 7089958811d3 bash  #进入数据卷容器
echo "11111" > /data1/123.txt
echo "22222" > /data2/456.txt
echo "33333" > /data3/789.txt
exit

(3)挂载数据卷容器中的数据卷到新的容器

使用--volumes-from来挂载web2容器中的数据卷到新的容器docker run -itd --volumes-from web2 --name web3 centos:7 /bin/bash
docker exec -it 02c46e912b19 bash   #进入新容器
cat /data1/123.txt
cat /data2/456.txt
cat /data3/789.txt

七、容器互联(使用centos镜像)

1、定义

容器互联是通过容器的名称在容器间建立一条专门的网络通信隧道。简单点说,就是会在源容器和接收容器之间建立一条隧道,接收容器可以看到源容器指定的信息

2、创建容器互联

1.#创建并运行源容器取名web1
docker run -itd -P --name web1 centos:7 /bin/bash
2.#创建并运行接收容器取名web2,使用--1ink选项指定连接容器以实现容器互联
3.docker run -itd -P --name web2 --link web1:jc centos:7 /bin/bash      #--link容器名:连接的别名
4.#进web2容器,ping sb/web1
docker exec -it web2 bash
ping web1/jc

Docker容器网络模式与数据管理相关推荐

  1. Docker容器-------网络模式,数据卷和数据卷容器

    目录 Docker网络实现原理 Docker的网络模式 Host模式 Container模式 none模式 bridge模式 自定义网络 查看网络模式列表 查看容器信息(包含配置.环境.网关.挂载.c ...

  2. Docker的网络模式及数据管理

    目录 Docker四种网络模式 docker自定义网络 查看网络模式列表 查看容器信息(包含配置.环境.网关.挂载.cmd等等信息) 指定分配容器IP地址 自定义网络固定IP 端口映射 在宿主机环境执 ...

  3. Docker网络模式与数据管理

    Docker网络模式与数据管理 前言 一.四种网络模式 (1)Host模式 (2)Container模式 (3)Bridge模式(默认) (4)None模式 (5)overlay2 二.自定义网络 ( ...

  4. docker修改容器网络模式

    docker修改容器网络模式 docker修改容器网络模式 docker修改容器网络模式 一.创建容器时指定网终模式docker run -d -p 外部访问端口:容器内端口 --net=" ...

  5. Docker(十四):Docker:网络模式详解

    Docker作为目前最火的轻量级容器技术,牛逼的功能,如Docker的镜像管理,不足的地方网络方面. Docker自身的4种网络工作方式,和一些自定义网络模式 安装Docker时,它会自动创建三个网络 ...

  6. Docker的网络模式和跨主机通信

    文章转载自:http://www.a-site.cn/article/169899.html Docker的四种网络模式Bridge模式 当Docker进程启动时,会在主机上创建一个名为docker0 ...

  7. Docker容器网络解析

    Docker 容器网络的发展历史 在 Dokcer 发布之初,Docker 是将网络.管理.安全等集成在一起的,其中网络模块可以为容器提供桥接网络.主机网络等简单的网络功能. 从 1.7 版本开始,D ...

  8. Docker容器网络

    Docker的技术依赖于Linux内核的虚拟化技术的发展,Docker使用到的网络技术有Network Namespace.Veth设备对.Iptables/Netfilter.网桥.路由等.接下来, ...

  9. Docker:网络模式详解

    http://www.cnblogs.com/zuxing/articles/8780661.html Docker:网络模式详解 袖珍指南 Docker作为目前最火的轻量级容器技术,牛逼的功能,如D ...

  10. docker容器网络及其配置

    docker容器网络及其配置 文章目录 docker容器网络及其配置 虚拟化网络 单主机与多主机的Docker网络 单节点容器间通信 不同节点容器间通信 Docker网络驱动 选择Docker网络驱动 ...

最新文章

  1. 稀疏矩阵十字链表类java_稀疏矩阵的十字链表存储表示
  2. java jar包收集
  3. 工作373-前端 import与export区别
  4. 一个做运营的朋友过来抱怨,现在HR谈薪都这么强硬吗?
  5. 用reloadRowsAtIndexPaths刷新单个cell 跳动问题
  6. oracle-jde操作界面,JDE项目系统基础培训.ppt
  7. 【雷达与对抗】【2014.06】荷兰人工育滩工程Sand Motor的X波段雷达深度反演模型研制
  8. 二分钟倒计时c语言编程,c语言分钟倒计时代码.docx
  9. 登顶多国免费榜,Zynga能否依靠超休闲游戏重回巨头行列
  10. 弹弹堂高抛50°中抛计算器C#程序
  11. 宾得的宾干微距镜头DA35mm
  12. 吉首大学校赛 K 白山茶与红玫瑰 (线段树区间操作)
  13. Spring Boot缓存实战 Redis 设置有效时间和自动刷新缓存
  14. 在Apple开发官网测试TestFlight
  15. 2022主流Nivida显卡深度学习/强化学习/AI算力汇总
  16. 《Photoshop七大核心技术》—第1课Photoshop七大核心技术
  17. 写一个程序来确定到底谁是凶手
  18. 图像增强工具Augmentor常用功能汇总
  19. 如何给老师写信?收到斯坦福/UCL/CMU/NYU/UW的博士offer的经验
  20. Linux 执行命令不挂断

热门文章

  1. Device owner调研
  2. Docker直接删除elasticsearch报错:Failed to obtain node locks
  3. 如何区分光纤跳线的颜色?
  4. 程序员来聊一聊信用卡(二)——对信用卡的一些基本认识
  5. python水浒传名字次数_《水浒传》中108个好汉的姓名及绰号!要按顺序!
  6. 服装系统mysql设计_服装行业ERP系统的设计与实现-店铺模块(SSH,MySQL)(含录像)
  7. 不要为优势忘乎所以——职场人士寓言(6)
  8. 国产计算机系统哪个好,5大国产手机操作系统分析评测,你更中意谁?
  9. 直播服务器搭建NGINX-RTMP+JAVA
  10. oracle IF_Oracle实时同步大数据平台解决方案