阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Docker容器管理

462次阅读
没有评论

共计 11679 个字符,预计需要花费 30 分钟才能阅读完成。

目录

  1. 创建容器
  2. 启动容器
  3. 停止容器
  4. 进入容器
  5. 删除容器
  6. 容器迁移

1. 创建容器

docker 创建容器可以用 docker create 命令来执行。

[root@docker-node1 ~]# docker create -it debian:latest
Unable to find image 'debian:latest' locally
latest: Pulling from library/debian
a719479f5894: Pull complete 
91bac885982d: Pull complete 
Digest: sha256:a1577aa9dde28e51fb56dbad63b86b7db3ea44d4474ef656671c5a6596073d8c
Status: Downloaded newer image for debian:latest
f4086492e895f3203f56ec545990bc0b5da69be3c3e3c70e2ce1188d685c9c16
[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f4086492e895        debian:latest       "/bin/bash"         5 seconds ago       Created                                 elegant_curie
[root@docker-node1 ~]#

通过 docker create 命令创建的容器是停止的,我们可以用 docker ps -a -q 命令来查看哪些是停止状态的容器。

[root@docker-node1 ~]# docker ps -a -q
f4086492e895
[root@docker-node1 ~]#

2. 启动容器

2.1 创建容器

上面说过了通过 docker create 创建的容器是停止状态的,那么我们就可以用 docker start 命令来启动容器。

[root@docker-node1 ~]# docker start f4086492e895
f4086492e895
[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
f4086492e895        debian:latest       "/bin/bash"         8 minutes ago       Up 6 seconds                            elegant_curie
[root@docker-node1 ~]#

2.2 创建启动容器

其实这样有点繁琐,先创建容器再进行启动,其实我们可以用 docker run 命令来实现直接创建启动一个容器的,其实 docker run 命令等价于先执行 docker create 然后执行 docker start 命令。

[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

[root@docker-node1 ~]# docker run debian:latest /bin/echo -e "\n\nHello, Here is Legion Blog."
Unable to find image 'debian:latest' locally
latest: Pulling from library/debian
a719479f5894: Pull complete 
91bac885982d: Pull complete 
Digest: sha256:a1577aa9dde28e51fb56dbad63b86b7db3ea44d4474ef656671c5a6596073d8c
Status: Downloaded newer image for debian:latest
Hello, Here is Legion Blog.

[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                    CREATED             STATUS                     PORTS               NAMES
68e25a09499d        debian:latest       "/bin/echo -e'\\n\\nHe"   7 seconds ago       Exited (0) 7 seconds ago                       loving_nobel

[root@docker-node1 ~]# docker images |grep debian
debian              latest              91bac885982d        5 days ago          125.1 MB

[root@docker-node1 ~]# docker ps -a -q
68e25a09499d

[root@docker-node1 ~]#

当使用 docker run 命令创建启动容器时,Docker 在后台运行的标准操作有下面几个步骤:

  1. 检测本地是否存在指定的镜像,不存在就从公有仓库下载
  2. 利用镜像创建并启动一个容器
  3. 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
  4. 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
  5. 从地址池配置一个 IP 地址给容器
  6. 执行用户指定的应用程序
  7. 执行完毕后终止容器

2.3 容器的守护状态运行。

在实际应用中我们更多的是需要容器在后台以守护状态 (Daemonized) 形式运行,我们可以使用 - d 参数来实现容器的后台守护状态运行。

[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                    CREATED             STATUS                      PORTS               NAMES
a578b01bc9bd        debian:latest       "/bin/bash"                15 minutes ago      Exited (0) 8 minutes ago                        sick_lalande
68e25a09499d        debian:latest       "/bin/echo -e'\\n\\nHe"   34 minutes ago      Exited (0) 34 minutes ago                       loving_nobel

[root@docker-node1 ~]# docker run -d debian /bin/bash -c "while true; do echo hello docker; sleep 3;done"
a2bda91ae015d5166a31af082fb78126d054633cc381cc75dbd5e7894d5dac6e

[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                    CREATED             STATUS                      PORTS               NAMES
a2bda91ae015        debian              "/bin/bash -c'while "     4 seconds ago       Up 3 seconds                                    loving_chandrasekhar
a578b01bc9bd        debian:latest       "/bin/bash"                17 minutes ago      Exited (0) 9 minutes ago                        sick_lalande
68e25a09499d        debian:latest       "/bin/echo -e'\\n\\nHe"   35 minutes ago      Exited (0) 35 minutes ago                       loving_nobel

[root@docker-node1 ~]# docker logs a2bda91ae015
hello docker
hello docker
hello docker
hello docker
hello docker
hello docker
hello docker
hello docker
hello docker

上面我们就是用 Debian 镜像运行了一个容器,容器在后台以守护进程的方式运行着 while true; do echo hello docker; sleep 3;done 循环,最后我们通过 docker logs a2bda91ae015 命令可以看到容器的输出信息,证实这个容器一直在后台运行着。

3. 停止容器

我们可以使用 docker stop 命令来停止一个运行中的容器

命令用法:docker stop [-t|–time[=10]]

它会首先向容器发送 SIGTERM 信号,等待一段时间后(默认为 10 秒),再发送 SIGKILL 信号来终止容器。

当 docker 容器中指定的应用终结时,容器也自动终止。例如上面我用用 exit 命令退出那个终端的时候所创建的容器也立刻终止了。

我们可以用 docker stop 命令终止一个容器也可以使用 docker start 命令来重新启动,也可以使用 docker restart 命令来将一个运行终端额容器终止后再重新启动它。

[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                    CREATED             STATUS                      PORTS               NAMES
a2bda91ae015        debian              "/bin/bash -c'while "     11 minutes ago      Up 11 minutes                                   loving_chandrasekhar
a578b01bc9bd        debian:latest       "/bin/bash"                29 minutes ago      Exited (0) 21 minutes ago                       sick_lalande
68e25a09499d        debian:latest       "/bin/echo -e'\\n\\nHe"   47 minutes ago      Exited (0) 47 minutes ago                       loving_nobel
[root@docker-node1 ~]# docker stop a2bda91ae015
a2bda91ae015
[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                    CREATED             STATUS                       PORTS               NAMES
a2bda91ae015        debian              "/bin/bash -c'while "     12 minutes ago      Exited (137) 4 seconds ago                       loving_chandrasekhar
a578b01bc9bd        debian:latest       "/bin/bash"                29 minutes ago      Exited (0) 22 minutes ago                        sick_lalande
68e25a09499d        debian:latest       "/bin/echo -e'\\n\\nHe"   48 minutes ago      Exited (0) 48 minutes ago                        loving_nobel
[root@docker-node1 ~]# docker start a2bda91ae015
a2bda91ae015
[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                    CREATED             STATUS                      PORTS               NAMES
a2bda91ae015        debian              "/bin/bash -c'while "     12 minutes ago      Up 2 seconds                                    loving_chandrasekhar
a578b01bc9bd        debian:latest       "/bin/bash"                29 minutes ago      Exited (0) 22 minutes ago                       sick_lalande
68e25a09499d        debian:latest       "/bin/echo -e'\\n\\nHe"   48 minutes ago      Exited (0) 48 minutes ago                       loving_nobel
[root@docker-node1 ~]# docker restart a2bda91ae015
a2bda91ae015
[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                    CREATED             STATUS                      PORTS               NAMES
a2bda91ae015        debian              "/bin/bash -c'while "     12 minutes ago      Up 3 seconds                                    loving_chandrasekhar
a578b01bc9bd        debian:latest       "/bin/bash"                30 minutes ago      Exited (0) 22 minutes ago                       sick_lalande
68e25a09499d        debian:latest       "/bin/echo -e'\\n\\nHe"   48 minutes ago      Exited (0) 48 minutes ago                       loving_nobel
[root@docker-node1 ~]# docker stop --time=2 a2bda91ae015
a2bda91ae015
[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                    CREATED             STATUS                       PORTS               NAMES
a2bda91ae015        debian              "/bin/bash -c'while "     13 minutes ago      Exited (137) 3 seconds ago                       loving_chandrasekhar
a578b01bc9bd        debian:latest       "/bin/bash"                30 minutes ago      Exited (0) 23 minutes ago                        sick_lalande
68e25a09499d        debian:latest       "/bin/echo -e'\\n\\nHe"   48 minutes ago      Exited (0) 48 minutes ago                        loving_nobel
[root@docker-node1 ~]#

4. 进入容器

在使用 docker run -d 参数时候,容器启动后会进入后台,用户无法看到容器中的信息。某些时候我们是需要进入容器进行操作的,这里我们就可以使用 docker attach、docker exec命令或者 nsenter 工具等来完成。

4.1 attach 命令

docker attach 是一个 Docker 自带的命令,下面来说说 attach 命令的使用方法:

[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@docker-node1 ~]# docker run -t -i -d debian
7f16264f7ab46e68b70dc8d982300c3a277d273cb425be6be739915c563ccb3c
[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
7f16264f7ab4        debian              "/bin/bash"         3 seconds ago       Up 2 seconds                            tender_raman
[root@docker-node1 ~]# docker attach 7f1
root@7f16264f7ab4:/# 
root@7f16264f7ab4:/# ps
  PID TTY          TIME CMD
    1 ?        00:00:00 bash
    6 ?        00:00:00 ps
root@7f16264f7ab4:/# exit
exit
[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                     PORTS               NAMES
7f16264f7ab4        debian              "/bin/bash"         About a minute ago   Exited (0) 2 seconds ago                       tender_raman
[root@docker-node1 ~]#

其实使用 docker attach 命令有时候很不方便,当多个窗口同时 attach 到同一个容器的时候,所有窗口都会同步显示,当某个窗口因命令阻塞的时候,其他窗口也无法执行操作了。

4.2 exec 命令

在 Docker1.3 版本开始,提供了一个更方便的命令 exec。可以直接在容器内运行命令。

[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
7f16264f7ab4        debian              "/bin/bash"         5 minutes ago       Exited (0) 4 minutes ago                       tender_raman
[root@docker-node1 ~]# docker start 7f16264f7ab4
7f16264f7ab4
[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
7f16264f7ab4        debian              "/bin/bash"         5 minutes ago       Up 2 seconds                            tender_raman
[root@docker-node1 ~]# docker exec -ti 7f16264f7ab4 /bin/bash
root@7f16264f7ab4:/# ps 
  PID TTY          TIME CMD
    6 ?        00:00:00 bash
   10 ?        00:00:00 ps
root@7f16264f7ab4:/# date
Sun Nov 15 07:59:29 UTC 2015
root@7f16264f7ab4:/#

4.3 nsenter 工具

1. nsenter 的安装

nsenter 工具在 util-linux 包的 2.23 版本后都包含。如果系统中的 util-linux 包中没有这个命令,那么可以通过源码编译安装。

检查是否安装 nsenter 工具:

[root@docker-node1 ~]# which nsenter
/usr/bin/nsenter
[root@docker-node1 ~]# nsenter -V
nsenter,?? util-linux 2.23.2
[root@docker-node1 ~]#

下载并编译安装:

[root@docker-node1 ~]# wget https://www.kernel.org/pub/linux/utils/util-linux/v2.27/util-linux-2.27.tar.xz
[root@docker-node1 ~]# tar xf util-linux-2.27.tar.xz 
[root@docker-node1 ~]# cd util-linux-2.27/
[root@docker-node1 ~/util-linux-2.27]# ./configure --without-ncurses
[root@docker-node1 ~/util-linux-2.27]# make nsenter
[root@docker-node1 ~/util-linux-2.27]# \cp nsenter /usr/bin/
[root@docker-node1 ~/util-linux-2.27]# which nsenter 
/usr/bin/nsenter
[root@docker-node1 ~/util-linux-2.27]# nsenter -V
nsenter,来自 util-linux 2.27
[root@docker-node1 ~/util-linux-2.27]#

2. nsenter 的使用

为了使用 nsenter 工具连接到容器,我们首先需要找到容器的进程 PID 号,可以通过下面的命令获取。

获取 PID:

f-docker-pid() { docker inspect --format "{{ .State.Pid}}" $1; }
docker-pid <CONTAINER ID>
nsenter --target <PID> --mount --uts --ipc --net --pid

操作步骤:

[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
7f16264f7ab4        debian              "/bin/bash"         34 minutes ago      Up 29 minutes                           tender_raman
[root@docker-node1 ~]# f-docker-pid() { docker inspect --format "{{ .State.Pid}}" $1; }
[root@docker-node1 ~]# nsenter --target $(f-docker-pid 7f16264f7ab4) --mount --uts --ipc --net --pid
root@7f16264f7ab4:/# date
Sun Nov 15 08:29:37 UTC 2015
root@7f16264f7ab4:/# logout
[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
7f16264f7ab4        debian              "/bin/bash"         36 minutes ago      Up 31 minutes                           tender_raman
[root@docker-node1 ~]#

为了以后方便使用我这做了 shell 函数写到.bashrc 文件了。

[root@docker-node1 ~]# echo 'tools-nsenter() { nsenter --target $(docker inspect --format"{{ .State.Pid}}"$1) --mount --uts --ipc --net --pid; }' >> ~/.bashrc
[root@docker-node1 ~]# source ~/.bashrc
[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
7f16264f7ab4        debian              "/bin/bash"         58 minutes ago      Up 53 minutes                           tender_raman
[root@docker-node1 ~]# tools-nsenter 7f16264f7ab4
root@7f16264f7ab4:/# date
Sun Nov 15 08:53:22 UTC 2015
root@7f16264f7ab4:/# ps
  PID TTY          TIME CMD
  216 ?        00:00:00 bash
  253 ?        00:00:00 ps
root@7f16264f7ab4:/# logout
[root@docker-node1 ~]#

这样以后就可以更方便的使用 nsenter 命令来连接容器。

5. 删除容器

删除容器我们可以使用 docker rm 命令,被删除的容器需要是终止状态的。

命令用法:docker rm [OPTIONS] CONTAINER [CONTINER…]

options:

  • -f, –force=false: 强项终止并删除一个运行中的容器。
  • -l, –link=false: 删除容器的连接,但保留容器。
  • -v, –volumes=false: 删除容器挂载的数据卷。
[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
b8971dc66962        debian              "/bin/bash"         9 seconds ago       Up 8 seconds                            agitated_chandrasekhar
[root@docker-node1 ~]# docker rm b8971dc66962
Error response from daemon: Conflict, You cannot remove a running container. Stop the container before attempting removal or use -f
Error: failed to remove containers: [b8971dc66962]
[root@docker-node1 ~]# docker rm -f b8971dc66962
b8971dc66962
[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@docker-node1 ~]#

六. 容器迁移

6.1 导出容器

导出容器是指一个已经创建的容器导出到一个文件,不管此时这个容器是否处于运行状态,可以使用 docker export 命令。

命令用法:docker export CONTAINER

[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@docker-node1 ~]# docker run -t -i -d debian
0291b910e062dd348696386875f3e73e55a32366540bad1742f45bfcc987a455
[root@docker-node1 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
0291b910e062        debian              "/bin/bash"         2 seconds ago       Up 1 seconds                            gloomy_galileo
[root@docker-node1 ~]# docker export 0291b910e062 > debian-2015_11_15.tar
[root@docker-node1 ~]# ls -l debian-2015_11_15.tar
0644 -rw-r--r-- 1 root root 130947584 11 月 15 09:16 debian-2015_11_15.tar
[root@docker-node1 ~]#

6.2 导入容器

导入容器是指将一个指定的文件导入到容器,可以使用命令 docker import。

命令用法:docker import CONTAINER

[root@docker-node1 ~]# docker export 0291b910e062 > debian-2015_11_15.tar
[root@docker-node1 ~]# ls -l debian-2015_11_15.tar
0644 -rw-r--r-- 1 root root 130947584 11 月 15 09:16 debian-2015_11_15.tar
[root@docker-node1 ~]# cat debian-2015_11_15.tar | docker import - runbash/debian:v1.0
0b1d5532571e3f829a2c90e7353262c1f6f18bf0cbdd1930fa324344bf5cebc8
[root@docker-node1 ~]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
runbash/debian      v1.0                0b1d5532571e        13 seconds ago      125.1 MB
Ubuntu              latest              d1b426312675        14 hours ago        286.2 MB
lookback/ubuntu     baseos              d1b426312675        14 hours ago        286.2 MB
ubuntu              14.04               e9ae3c220b23        5 days ago          187.9 MB
debian              latest              91bac885982d        5 days ago          125.1 MB
CentOS              6.7                 7e8fbd86f46d        4 weeks ago         190.6 MB
[root@docker-node1 ~]#

更多 Docker 相关教程见以下内容

Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 16.04 服务器上配置使用 Docker  http://www.linuxidc.com/Linux/2017-06/145176.htm 

Ubuntu 15.04 下安装 Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm 

Docker 安装实例 http://www.linuxidc.com/Linux/2017-04/142666.htm 

Docker 创建基础镜像  http://www.linuxidc.com/Linux/2017-05/144112.htm 

在 Ubuntu 15.04 上如何安装 Docker 及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm 

Ubuntu 16.04 上 Docker 使用手记 http://www.linuxidc.com/Linux/2016-12/138490.htm 

使用 Docker 分分钟启动常用应用  http://www.linuxidc.com/Linux/2017-04/142649.htm 

Ubuntu 16.04 下 Docker 修改配置文件不生效解决办法  http://www.linuxidc.com/Linux/2017-05/143862.htm 

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148368.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计11679字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7987211
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...
星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛NAS硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话?

星哥带你玩飞牛 NAS 硬件 01:捡垃圾的最爱双盘,暴风二期矿渣为何成不老神话? 前言 在选择 NAS 用预...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛NAS-1:安装飞牛NAS

星哥带你玩飞牛 NAS-1:安装飞牛 NAS 前言 在家庭和小型工作室场景中,NAS(Network Atta...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...