【入门必读干货】我要成为Docker高手!从快速入门到落地部署
nanshan 2024-11-14 16:36 30 浏览 0 评论
本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:羊刀仙
Docker是NAS的重要玩法之一,没有Docker的NAS莫得灵魂,就像西方不能没有耶路撒冷!
开始分享教程以来,发现不少小伙伴对于Docker并不太了解,有的甚至是一脸懵的状态~本篇旨在帮助咱们玩家快速掌握Docker基本用法,满足大部分需要,更好的玩转NAS!
某天某群的某位群友大成后:
篇幅较长,尽可能细;如果觉得不错,欢迎点赞收藏评论支持~有任何问题可留言/私聊
那么,什么是Docker?
Docker是一种快速构建、运行、管理应用的工具,简单来说就是帮助咱们去部署各种项目以及项目所需的各种组件,也可以看作是一个运维工具。
过去的项目,基本只能通过手动命令来操作Linux服务器,通过一些脚本来实现部署,还是比较复杂、麻烦(命令多、安装包多、安装步骤复杂)。在现在微服务盛行的当前,Docker为我们的效率带来极大提升,无需成为运维大师,也能轻松玩起来!
举个栗子
传统方式部署Nginx比较麻烦,大致需要以下步骤:
- 搜索并下载Nginx包体
- 上传至Linux服务器
- 编译及配置环境
- 安装
通过Docker部署则仅需一条命令完事儿:
docker run -d --name nginx -p 80:80 nginx
也可写成:
docker run -d --name nginx -p 80:80 nginx
本质也是一行命令,因为不够直观,所以用反斜杠 换行
复制粘贴再敲下回车键,即可全自动安装~
当然这里的命令行少了部分东西,放在后面说;但这种一键式部署方式,爽飞了有没有?
Docker 准备工作
想要体验Docker所带来的便利,首先要进行Docker的部署。很多情况下我们一般利用SSH工具连接服务器,通过命令行进行操作。
品牌NAS
这里以威联通为例,初始化系统后,打开App Center安装名为Container Station的应用程序(威联通的官方Docker图像化管理工具)
除去能更轻松管理Docker,Container Station也是商店内部分应用软件的安装前提。这是品牌NAS的一大好处,学习并了解Docker后,再有这玩意的加持,简直如虎添翼!
之后再开启SSH服务备用
云服务器(VPS)、Linux虚拟机等
这里以阿里云服务器为演示平台,操作系统为Debian_12_x64(个人使用推荐Debian/Ubuntu),其它Linux发行版大同小异。
一、更新软件包列表
输入以下命令并回车,等待包体安装更新:
apt update -y
这个命令可让系统的包管理器(APT)从配置的源中下载包的最新列表,以确保在安装新软件或更新现有软件时,能够获取到最新的版本。
二、安装常用软件包
输入以下命令:
apt install sudo vim git wget curl -y
日常用完全够。Red Hat、CentOS或Fedora等,需使用它们各自的包管理器,如yum或dnf来安装软件包。
三、安装Docker及Docker Compose
官方指引手册:https://docs.docker.com/engine/install
输入以下命令:
apt install docker -y # 安装docker docker -v # 验证安装 systemctl enable docker # 设置docker开机自启 apt install docker-compose -y # 安装docker compose docker-compose -v # 确认docker compose版本
四、配置镜像加速
看需求,若镜像下载速度很慢,可以进行配置。
以阿里云为例,提供一个免费的加速器地址,获取入口:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
可以看到官方已经给出现成命令
一条条复制进去执行即可
Docker 入门
首先是两个关键名词:image(镜像)、container(容器)
基础讲解
还是以Nginx为例,文章开头我们的部署命令如下:
docker run -d --name nginx -p 80:80 nginx
可以看到,我们回车执行命令后,Docker首先在本地搜索有无镜像,若没有则会去搜索并下载Nginx对应版本的镜像,然后自动运行它。
镜像中不仅包含了Nginx本体,还一并打包了它运行所需的环境、配置、系统函数库。
为了更直观理解镜像,不晓得大家是使用过绿色免安装版本的软件?某某软件园下载后解压后,也不用安装,进入文件夹找到并双击.exe文件直接就能用,Docker也可近乎理解成此。
Docker在运行镜像时会为每一个应用创建一个隔离、独立环境,这个环境称为容器,这样可完美规避不同应用间的冲突,实现同设备下不同环境需求的多应用部署,或是某个应用的集群部署,保证服务平稳运行。
如图所示,部署多个Nginx,并且都成功启动
命令解读
根据Docker hub的官方文档,咱们把Nginx的命令进行完善
docker run -d --name nginx -p 80:80 -v /root/docker/data/nginx/html:/usr/share/nginx/html -e TZ=Asia/Shanghai # 凑数的变量,方便演示 --network inter # 方便演示 nginx
docker run -d : 创建并运行一个容器,-d表示让容器以后台模式运行
--name nginx : 为容器命名,完全看个人喜好,但必须是唯一的
-p 80:80 : 设置端口映射
- 容器为隔离环境,外界不可访问。将容器的80端口映射到宿主机的80端口,这允许从宿主机访问容器内运行的服务。
- 容器内端口由容器内的进程决定,而宿主机端口则可以任意指定,例如-p 90:80
- -p 宿主机端口:容器内端口,示例中就是将宿主机的80映射到容器内的80端口
-e TZ=Asia/Shanghai : 配置容器内进程运行时的一些参数,我们称为环境变量
- 格式:-e KEY=VALUE,KEY和VALUE都由容器内进程(作者)决定
- TZ=Asia/Shanghai是设置时区;
- 官方文档可能包含必须变量和可选变量,部署前仔细阅读
--network inter : 定义容器的网络连接类型,这个咱们放在最后的网络部分讲
nginx : 设置镜像名称,Docker会根据这个名字搜索并下载镜像
- 格式:repository:tag,例如nginx:1.1,其中repository可以理解为镜像名,tag是版本号
- 在未指定TAG的情况下,默认是最新版本,也就是mysql:latest
- 以上为官方镜像格式,若想要拉取用户自建镜像,格式为username/my-custom-image:version,例如ydxian/nginx:1.1.0,通常ydxian/nginx也默认为最新版本
- 当然不同镜像由于作者配置不同,胡乱填写可能导致部署失败,还请阅读安装手册
Docker 常见命令
命令就是为了去操作镜像和容器,不过无需硬记忆,控制台可通过docker help快速查阅
所有命令见官方文档:https://b11et3un53m.feishu.cn/wiki/MWQIw4Zvhil0I5ktPHwcoqZdnec#YCejdEwpyo2hxRxpDx4cFFkDnQg
针对某个容器进行操作时,输入命令 容器名/容器ID前三位即可,例如docker stop nginx或docker stop 024。下图为一些操作演示
数据卷
首先是一些常用命令https://docs.docker.com/reference/cli/docker/volume
无需死记硬背,控制台可通过docker volume help查看
数据卷是什么
数据卷(volume)是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁,与上面说过的端口(ports)有那么些类似。
咱们继续以Nginx为例,阅读官方文档可知Nginx有两个关键目录:
/usr/share/nginx/html专门托管静态资源,/etc/nginx/nginx.conf则负责保存配置文件。
那如果想对这两个部分进行配置,我们就得利用数据卷将两个目录与宿主机目录关联,方便操作
创建两个数据卷html和conf,Docker则会帮助我们为这两个数据卷在宿主机创建真实目录,位置为var/lib/docker/volums/html/_data和var/lib/docker/volums/conf/_data
只要是在Linux系统下,var/lib/docker/volums为默认位置,其下再根据数据卷名称创建新目录,格式为/数据卷名/_data
这样一来,容器内的html和conf便会通过两个数据卷与宿主机的对应目录相关联,这便是咱们常说的挂载。只要我们将静态资源放入宿主机对应目录,就可以被Nginx代理
根据上文,咱们重新对Nginx进行部署:
docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx
Web输入http://localhost:80或http://host-ip:80出现以下界面
接着进行演示
docker volume ls # 列出所有数据卷,输出以下内容 *DRIVER VOLUME NAME local html* docker volume inspect html # 显示数据卷html的详细信息,Mountpoint为宿主机挂载点 *[ { "CreatedAt": "2024-04-09T13:41:08+08:00", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/html/_data", "Name": "html", "Options": null, "Scope": "local" } ]* cd /var/lib/docker/volumes/html/_data ls # 列出静态资源文件,出现以下内容 *50x.html index.html* cat index.html # 查看 index.html 文件,所示内容即为我们web端看到的欢迎页面内容
也就是说/var/lib/docker/volumes/html/_data与html数据卷完成了映射,html再与/usr/share/nginx/html映射,最终就实现了/var/lib/docker/volumes/html/_data与/usr/share/nginx/html间的映射。
结合图片更为明显
为了更进一步进行验证,咱们对index.html进行魔改,看看效果怎样。接着在这个目录下,输入以下命令:
vim index.html
修改后的代码如下,张大妈这边不能搞进html代码,就截图展示:修改了网站标题及欢迎页面文字,并将原本的网址替换成我的个人博客站
保存后退出,再刷新Web界面,结果符合预期
挂载
对于挂载,小伙伴们应该就很熟悉了吧!把上面的数据卷搞明白,那便是轻轻松松!
# 挂载命令格式,必须以 / 或 ./ 起始 -v 本地目录:容器目录 -v 本地文件:容器文件 # 举例,假设我们所在的宿主机目录为 /root/docker/data/nginx -v html:/usr/share/nginx/html # 此处冒号左侧 html 会被识别成数据卷 -v ./html:/usr/share/nginx/html # ./ 表示当前目录下的 html 目录,若不存在,Docker会自动创建 -v /root/docker/data/nginx/html:/usr/share/nginx/html # 宿主机上的绝对路径,可将宿主机的静态数据直接提供给Nginx,也是最常用且方便的形式
那么我们为什么要把容器内目录挂载到指定的本地目录呢?原因有以下几点:
- 数据卷的目录机构较深,前面咱们也看到/var/lib/docker/volumes/html/_data这个目录又臭又长,每次操作起来非常麻烦!
- 对于有些Docker项目,若不主动挂载,也会自动生成一个数据卷,一大串长字符那种
看看我威联通NAS自动生成的数据卷!
接下来进行演示,利用上文教程,咱们把nginx卸载重新安装,新增一条html挂载
mkdir -p /root/docker/data/nginx/html docker run -d --name nginx -p 80:80 -v /root/docker/data/nginx/html:/usr/share/nginx/html nginx # 此时我们若Web访问,会出现403报错,因为宿主机目录下为空,需要我们自行提供静态数据 cd /root/docker/data/nginx/html ls # 创建文件,把之前的拷贝进去并保存退出 vim index.html ls # 看到新建文件成功,此时再刷新Web界面,就可再次看到页面
操作流程图片展示
此时我们刷新Nginx界面,由于没有配置静态数据,页面403报错,但可以肯定的是Nginx已部署成功
通过指令配置静态数据,在原来基础上把YDXian改成了QNAP
再次刷新界面
最后很重要的一点,如果我们挂载配置数据等文件,要提前准备好相应目录及文件;若未备好,执行命令后,Docker若找不到nginx.conf文件,那仅会自动创建名为nginx.conf的文件夹并报错
-v /root/docker/data/nginx/nginx.conf:/etc/nginx/nginx.conf
网络
网络嘛,顾名思义,咱们在命令解读部分稍微提到过。 常用类型有三种:bridge、host和自定义;
Bridge:
为通常默认的网络类型,若不额外设置,容器会连接到这个网络。它是一个私有的内部网络,容器间可以互相通信,主机也可以与容器通信。
Host
移除容器和Docker主机之间的网络隔离,容器直接使用宿主机的IP地址和网络端口,这意味着不需要额外的端口映射。使用--network host可以提高性能,并允许容器监听主机网络上的端口。例如大家都在用的Emby等流媒体服务。
自定义
对于咱们休闲玩家来说,基本不会这样做,如果容器间需要互相调用,若出现问题,可尝试选择此法。要事先命名并创建新网桥,例如docker network create inter,再输入docker network connect inter 容器名让其它加入。这样便可实现加入inter网络的容器间相互访问,并支持直接通过容器名访问,无需知晓IP。
通过 docker inspect nginx ,可看到Nginx的IP地址为172.17.0.2
查看另一容器信息,IP地址为172.17.0.3
这就表示两个容器处在同一个网段,想一下咱们家里的局域网设备,同一路由器/交换机下的设备是不是也能够互相访问?
但有些疑惑,前面说过各个容器不是相互独立吗,为啥还能在同一网段?
细心的小伙伴可能已经发现,它们都有相同的网关172.17.0.1,看过我之前教程分享的朋友,有没有觉得这个IP很熟悉?对的,我们做反向代理通常会填写这个IP!
其实在我们安装Docker那一刻起,它便会自动在设备中安装一个虚拟网卡docker 0,并且还会为这个虚拟网卡创建一个虚拟网桥,用于容器与宿主机间的通信。它的地址为172.17.0.1/16,172.17.0.1是docker0接口的IP地址,/16表示子网掩码,定义了IP地址范围是172.17.0.0到172.17.255.255。
注:以上只是大多数情况,具体的IP地址范围可能会因安装和配置不同而有所变化。
ifconfig ip addr show docker0
关于自定义,因使用场景不多,这里仅简单演示
docker network create inter # 创建名为inter的网络 network connect inter nginx # nginx加入inter network connect inter emby # emby加入inter
可以看到,初始的Nginx多出了一个名为inter的网络
若此法j解决不了,建议先使用docker logs 容器名检查容器日志,了解错误详情;或使用docker exec -it 容器名 bash(或sh)进入容器内部,然后使用curl或其它工具测试容器间的网络连接。
Docker Compose
docker compose可帮助我们实现多个相互关联的docker容器的快速部署,这是它的一大优势。
通过威联通官方docker管理工具Container Station用此种方式部署也是很舒服滴
粘贴进YAML代码后,若指令有误,系统不会允许创建操作,根据提示排错完毕后才能进行创建。而且会进行提示,咱们逐一排错即可~下图中其实是environment后少了个:
这便是品牌NAS的好处,面板高度可视化且便利性高!
笔者日常也更喜欢通过这种方式进行部署,基本语法可以参考官方文档:https://docs.docker.com/compose/compose-file/compose-file-v3
与Docker run对比
docker-compose文件中可以定义多个相互关联的应用容器,每一个应用容器被称为一个服务(service)。由于service就是在定义某个应用的运行时参数,因此与docker run参数非常相似。
# docker run部署 docker run -d --name nginx -p 80:80 -e TZ=Asia/Shanghai -v /root/docker/data/nginx/html:/usr/share/nginx/html --restart=always --network inter # 自定义网络 nginx
很多情况下部署失败是格式没对齐、漏空格、多/少符号导致
# docker compose部署 version: "3" services: nginx: image: nginx container_name: nginx ports: - "80:80" environment: - TZ=Asia/Shanghai volumes: - /root/docker/data/nginx/html:/usr/share/nginx/html restart: always networks: # 若为默认桥模式,从这往下全部删除 - news networks: news: name: inter
常见对应表一览
大致部署流程
准备工作都差不多,如下
mkdir -p /root/docker/data/nginx # 创建nginx文件目录 cd /root/docker/data/nginx # 进入该目录下 mkdir html # 创建要挂载的宿主机目录 cd html # 进入html目录下 vim index.html # 准备静态数据文件,保存后退出 cd .. # 返回上级目录,回到nginx下 vim docker-compose.yml # 在nginx下创建 .yml 文件 # 将上面代码粘贴进去后保存并退出 docker-compose up -d # 启动
执行vim docker-compose.yml后,如需编辑,英文状态下,按i可进行编辑,编辑完成后,按Esc返回正常模式,然后同时按下Shift和:,输入wq(写入并退出)或:q!(不保存退出),按下回车键即可退出.
最后
其实大部分Docker应用的部署都不算难~基础知识原理了解差不多,部署前再多看看官方手册,很多答案都在那里,亲手操作个四五把就差不多咧!
祝大家玩的开心,咱们下期再见!
番外
来看个经典影音系统大合集,启动成功后,会得到四个部署完毕的容器。nastool库已经被删(作业应该可抄,请提前换库)
version: "3" services: jellyfin: image: nyanmisaka/jellyfin:latest container_name: jellyfin environment: - PUID=0 - PGID=0 - TZ=Asia/Shanghai volumes: - /share/Container/jellyfin/config:/config - /share/media/video:/video ports: - 8096:8096 - 8920:8920 devices: - /dev/dri:/dev/dri nastool: image: yohe/nastool:2.9.1 container_name: nastool environment: - PUID=0 - PGID=0 - TZ=Asia/Shanghai - ALPINE_MIRROR=mirrors.ustc.edu.cn - LANG=C.UTF-8 - NASTOOL_AUTO_UPDATE=false - NASTOOL_CN_UPDATE=true - NASTOOL_CONFIG=/config/config.yaml - NASTOOL_VERSION=master - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - PYPI_MIRROR=https://pypi.tuna.tsinghua.edu.cn/simple - REPO_URL=https://github.com/jxxghp/nas-tools.git - UMASK=000 - WORKDIR=/nas-tools volumes: - /share/Container/nastool/config:/config - /share/media/video:/video ports: - 3000:3000 jackett: image: linuxserver/jackett:latest container_name: jackett volumes: - /share/Container/jackett/config:/config - /share/Container/jackett/downloads:/downloads environment: - HOME=/root - LSIO_FIRST_PARTY=true - PATH=/lsiopy/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 - S6_STAGE2_HOOK=/docker-mods - S6_VERBOSITY=1 - TERM=xterm - VIRTUAL_ENV=/lsiopy - XDG_CONFIG_HOME=/config - XDG_DATA_HOME=/config ports: - 9117:9117 qBittorrent: image: linuxserver/qbittorrent:4.4.3 container_name: qBittorrent volumes: - /share/Container/qBittorrent/config:/config - /share/media/video:/downloads ports: - 8080:8080 - 6881:6881 - 6881:6881/udp
博客网站搭建项目 Halo 2,官方提供代码,饭喂到嘴里系列
version: "3" services: halo: image: halohub/halo:2.14 restart: on-failure:3 depends_on: halodb: condition: service_healthy networks: halo_network: volumes: - ./halo2:/root/.halo2 ports: - "8090:8090" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"] interval: 30s timeout: 5s retries: 5 start_period: 30s command: - --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo - --spring.r2dbc.username=root # MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。 - --spring.r2dbc.password=mysal_secret - --spring.sql.init.platform=mysql # 外部访问地址,请根据实际需要修改 - --halo.external-url=https://blog.ydxian.love/ halodb: image: mysql:8.1.0 restart: on-failure:3 networks: halo_network: command: - --default-authentication-plugin=caching_sha2_password - --character-set-server=utf8mb4 - --collation-server=utf8mb4_general_ci - --explicit_defaults_for_timestamp=true volumes: - ./mysql:/var/lib/mysql - ./mysqlBackup:/data/mysqlBackup healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"] interval: 3s retries: 5 start_period: 30s environment: # 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值 - MYSQL_ROOT_PASSWORD=mysal_secret - MYSQL_DATABASE=halo networks: halo_network:
相关推荐
- 教你一个解决手机卡顿的方法(10秒解决手机卡顿问题)
-
我们的手机天天刷头条,看视频,用了一阶段时间以后,就时不时的发生卡顿现象。昨天我的手机就发现了这个问题。友友们,你们遇到过这样的问题吗?你们都是怎样解决的?我看了一眼我的粉丝情况,头条君给我分析的很精...
- 手机视频缓存清理,3步彻底清空,告别卡顿
-
在我们使用手机观看视频的过程中,经常会产生大量的缓存垃圾,这些垃圾文件不仅占用了手机的存储空间,还可能导致手机卡顿和运行缓慢。然而,你知道如何彻底清空手机的视频缓存,让手机恢复流畅的使用体验吗?在本文...
- 关手机这个开关,轻松提升流畅度!
-
关闭手机这个开关,跟新买的一样流畅。手机不要再清理垃圾了,只要关闭这个开关,手机就会和新买的差不多,丝滑流畅不卡顿。其实抖音里就隐藏着一个小开关,每天刷过的视频都会保存在手机里,如果一直不清理,手机就...
- 如何清理今日头条和西瓜视频的内存,让手机流畅不卡顿?
-
对于老年人而言,今日头条和西瓜视频能带来丰富的资讯与娱乐。然而,随着使用时间的增加,这些应用会占用大量手机内存,致使手机运行卡顿。那该如何解决呢?接下来,我将用最简单易懂的方式教老年人清理今日头条和西...
- 视频在线如何转换格式?好用不卡顿的三种转换办法
-
转换视频格式目前来说已经是很熟练的操作了,但是还有些用户可能还是不知道,小编今天就特意给大家带来一些小众才知道的转换教程,让新手也能快速的上手去转换视频格式,以后获取到视频就不怕内容丢失了,视频的格式...
- 如何把视频慢放处理?这几个慢放方法记得收藏
-
如何把视频慢放处理?如果你想让视频慢放,可能是因为你想放慢一些精彩的瞬间,或者你想制作一个慢动作视频。在这篇文章中,我们将介绍一些调速方法,这些方法可以有效地调整视频速度,一起来学习一下吧。方法一:使...
- 如何清理看过的视频,释放垃圾,让手机更流畅?
-
现在谁的手机上没几个短视频平台,无聊时就会刷别人的视频。可您知道吗?我们看过的内容都会被自动保存在手机里,而且很耗内存。如果长时间不释放,手机就会出现各种问题,其中最突出的就是反应慢。相信很多老年人的...
- 手机掉帧是怎么回事?刷视频的时候经常掉帧卡顿
-
手机掉帧是指在运行应用或视频时,画面出现卡顿、不流畅的现象,通常由硬件性能不足、软件优化不佳、内存占用过高、网络问题或设备过热等因素引起。尤其是在刷视频时,掉帧问题可能更为明显,以下是具体原因及解决方...
- 拍视频画面卡顿不流畅,原来是相机设置错误 #短视频拍摄
-
拍摄视频时,应该选择哪种快门速度?许多新手朋友可能会认为,快门速度越高,画面就越清晰,实则不然。因为拍摄视频时,需要考虑一个问题,即动态模糊。例如,如果设置为24帧/秒,那么每秒钟会拍摄24张图片。如...
- 手机卡顿最大原因#视频太卡怎么变流畅
-
抖音这几个开关是手机卡顿的最大原因。你是不是也会经常遇到刷视频的时候,打开一个视频之后老半天还在那转着圈圈,总觉得手机没有之前流畅了。这就说明你的手机占用的内存太多了,导致手机卡顿,使用不流畅。使用手...
- 为啥你家的玩游戏和刷视频经常性的会卡,那是你不懂这些小妙招
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:暴走的黄小猪说到网速有不少的值友都有一个共同点,那就是“卡”,那是你根本没体验过啥叫真正的网速啊,全屋零四条网络报表也花不了几个钱你们的方法...
- 电脑看视频卡顿有什么解决方法?(电脑看视频画面卡顿是什么原因)
-
电脑看视频卡顿的原因可能多种多样,包括硬件性能不足、网络问题、软件设置不当等。以下是一些常见的解决方法,帮助你改善视频播放的流畅度:一、硬件方面1.检查硬件性能:如果电脑配置较低,尤其是CPU、内存或...
- 手机Wi-Fi满格但视频卡顿,你需要这样解决
-
累了一天的打工人回家拿出手机准备玩玩游戏,看看电影时,发现网络异常卡顿,但手机又显示Wi-Fi信号满格,当咱们遇到此类问题时,这些动作能让网络恢复正常,方法如下。一、重启路由器和光猫很多家庭在安装好路...
- 视频越刷越卡?原来是路由器开启了这个功能,关闭方法来了
-
应该很多小伙伴都有过类似的经历,就是在家里长时间刷视频或者看剧的时候,网速好像会越来越慢,视频总是要加载。手机本身可能是一部分原因,但路由器也会影响,你知道吗?当我们在刷视频的,路由器会悄悄地开启大量...
- 一招解决视频卡顿的问题,改变发布渠道后,结果香了
-
最近一段时间拍了很多美景视频,编辑发布到头条后,有时一直显示在缓冲,播放不了,有时打开断断续续的,老是卡顿。导致的后果是:要么展现量很低,要么阅读量寥寥无几,这让我非常苦恼。所以再发布作品时,我只好文...
你 发表评论:
欢迎- 一周热门
-
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
10个免费文件中转服务站,分享文件简单方便,你知道几个?
-
Ubuntu系统Daphne + Nginx + supervisor部署Django项目
-
WindowsServer2022|配置NTP服务器的命令
-
【系统配置】信创终端挂载NAS共享全攻略:一步到位!
-
UOS服务器操作系统防火墙设置(uos20关闭防火墙)
-
日本海上自卫队的军衔制度(日本海上自卫队的军衔制度是什么)
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)