09篇 docker命令详解

  1. `docker run -d --name my_container -p 8080:80 my_image`

这条命令会创建并启动一个后台运行的容器,其中`-d`代表以守护进程方式运行,`--name`用于指定容器名称,`-p`用于端口映射,将宿主机的8080端口映射到容器的80端口,`my_image`是指定的镜像名称。

  1. `docker ps -a`

使用`docker ps`命令可以列出当前运行的容器,`-a`参数会显示所有容器(包括已停止的)。

  1. `docker stop my_container`

该命令用于停止一个名为`my_container`的容器,`docker stop`后接容器ID或名称。

  1. `docker start my_container`

如果一个容器被停止了,使用`docker start`命令可以重新启动它。

  1. `docker exec -it my_container /bin/bash`

执行该命令可以在运行中的容器`my_container`内启动一个交互式bash shell,`-it`参数是为了分配一个伪终端。

  1. `docker build -t my_new_image .`

使用`docker build`命令可以构建一个新的镜像,`-t`用于指定新镜像的名称,`.`表示使用当前目录下的Dockerfile文件进行构建。

  1. `docker pull my_image`

通过`docker pull`命令可以从Docker Hub拉取一个已存在的镜像到本地。

  1. `docker push my_image`

如果有一个已标记的镜像想要推送到Docker Hub,可以使用`docker push`命令。

  1. `docker images`

该命令用于列出本地存储的所有镜像。

  1. `docker rm -f $(docker ps -aq)`

这是一个清理命令,用于删除所有容器。`-f`参数表示强制删除,`$(docker ps -aq)`会获取所有容器的ID并作为`docker rm`的参数。

  1. `docker logs my_container`

此命令用于获取容器`my_container`的日志输出。这对于调试和监控容器的行为非常有用,可以帮助你了解应用程序在容器内的运行状况。

  1. `docker network create my_network`

使用这个命令可以创建一个新的Docker网络`my_network`。网络是容器之间以及容器与外部世界通信的重要组成部分。

  1. `docker network ls`

列出Docker主机上存在的所有网络。这对于管理和理解容器网络非常有用,尤其是当你有多个网络时。

  1. `docker attach my_container`

该命令允许你附加到一个正在运行的容器上,这样你就可以直接与容器的进程交互。这对于实时监控和交互非常有用。

  1. `docker cp my_container:/path/to/file /path/on/host`

Docker的`cp`命令允许你从容器内部复制文件到宿主机,或者从宿主机复制文件到容器内部。这个例子展示了如何从容器复制文件到宿主机。

  1. `docker inspect my_image`

`docker inspect`命令用于获取Docker对象的底层信息,例如镜像、容器、网络等。这对于了解对象的详细信息和状态非常有用。

  1. `docker rmi -f my_image`

使用这个命令可以强制删除一个镜像。`-f`参数表示强制删除,`my_image`是你想要删除的镜像名称。这个命令在你确定不再需要某个镜像时非常有用。

  1. `docker create --name my_new_container my_image`

`docker create`命令用于创建一个新的容器,但不启动它。这个命令在你想要预先配置容器,然后在适当的时候启动它时非常有用。

  1. `docker update --restart=unless-stopped my_container`

`docker update`命令用于更新容器的配置。在这个例子中,我们使用`--restart`标志来设置容器的重启策略,`unless-stopped`意味着容器将在退出时重启,除非它被手动停止。

  1. `docker save -o my_image.tar my_image`

使用`docker save`命令可以将本地镜像保存为tar归档文件。这对于镜像的备份和迁移非常有用。在这个例子中,`-o`参数后面跟的是输出文件的路径和名称。

这些命令覆盖了Docker容器和镜像的基本操作,包括创建、启动、停止、查看日志、网络管理等。在使用这些命令时,请确保你了解每个命令的具体作用和潜在的风险,以避免不必要的错误和数据丢失。

  1. `docker volume create my_volume`

此命令用于创建一个新的Docker卷`my_volume`。Docker卷是一种数据持久化机制,可以用来存储和共享容器间的数据。

  1. `docker run -v my_volume:/path/in/container -d my_image`

在运行容器时使用`-v`参数可以将Docker卷挂载到容器内的指定路径。这个命令将`my_volume`挂载到容器内的`/path/in/container`路径。

  1. `docker volume inspect my_volume`

使用`docker volume inspect`命令可以查看卷的详细信息,包括卷的名称、驱动、挂载点等。

  1. `docker network connect my_network my_container`

此命令用于将容器`my_container`连接到网络`my_network`。这对于容器间的通信和微服务架构非常有用。

  1. `docker logs -f my_container`

`-f`参数用于跟踪容器的实时日志输出。这对于监控应用程序的实时运行状况和调试问题非常有用。

  1. `docker exec -d --name my_service my_container sh -c "some_command"`

这条命令在已运行的容器`my_container`中启动一个后台服务`my_service`,并执行`some_command`。这对于在容器内启动长期运行的进程非常有用。

  1. `docker build --build-arg BUILD_NUMBER=123 .`

在构建镜像时,可以使用`--build-arg`参数传递构建参数。这个命令在构建过程中设置了一个名为`BUILD_NUMBER`的参数,值为`123`。

  1. `docker tag my_image:tag1 my_image:tag2`

使用`docker tag`命令可以为镜像添加新的标签。这个命令为`my_image`镜像添加了两个标签:`tag1`和`tag2`。

  1. `docker info`

`docker info`命令提供了关于Docker守护进程和其主机的详细信息,包括系统状态、镜像、容器、存储和网络信息。

  1. `docker system prune`

此命令用于清理所有未使用的资源,包括停止的容器、无用网络、无用镜像(无标签)等。这对于释放磁盘空间和保持系统整洁非常有用。

这些命令进一步扩展了Docker的功能,包括数据卷的使用、实时日志跟踪、后台服务的执行、构建参数的传递、标签管理以及系统资源的清理。掌握这些命令可以帮助你更高效地使用Docker进行容器化应用的开发、部署和管理。记得在使用这些命令时,要根据实际情况和需求进行调整和优化。

  1. `docker-compose up`

使用`docker-compose up`命令可以启动在`docker-compose.yml`文件中定义的所有服务。这是一个非常实用的命令,特别是当你有一个由多个容器组成的复杂应用时,它可以帮助你快速启动整个应用栈。

  1. `docker-compose down`

与`docker-compose up`相对应,`docker-compose down`命令用于停止并移除由`docker-compose.yml`文件定义的所有容器、网络和卷。这个命令在你需要清理整个应用栈时非常有用。

  1. `docker-compose build`

此命令用于根据`docker-compose.yml`文件中定义的服务构建或重新构建服务的镜像。它会自动读取`build`部分的配置,并根据这些配置来构建镜像。

  1. `docker-compose pull`

使用`docker-compose pull`命令可以拉取`docker-compose.yml`文件中定义的所有服务的最新镜像。这在你想要确保使用最新版本的服务镜像时非常有用。

  1. `docker-compose push`

`docker-compose push`命令用于推送`docker-compose.yml`文件中定义的所有服务的镜像到远程仓库。这在你想要分享或部署服务镜像时非常有用。

  1. `docker-compose stop`

此命令用于停止由`docker-compose.yml`文件启动的所有容器,但不会移除它们。这在你想要暂停应用栈而不删除任何数据时非常有用。

  1. `docker-compose restart`

使用`docker-compose restart`命令可以重启由`docker-compose.yml`文件管理的所有容器。这对于重新加载配置或更新后的应用程序非常有用。

  1. `docker-compose logs`

`docker-compose logs`命令用于获取由`docker-compose.yml`文件定义的单个服务或所有服务的日志。这对于监控和调试服务的运行状况非常有用。

  1. `docker-compose scale service=3`

此命令用于扩展`docker-compose.yml`文件中定义的某个服务的副本数量。在这个例子中,`service`服务的副本数量被扩展到3个。

  1. `docker-compose config`

使用`docker-compose config`命令可以验证`docker-compose.yml`文件的配置是否正确,并且会显示服务、网络、卷等的详细信息。

这些命令围绕`docker-compose`工具展开,它是一个用于定义和运行多容器Docker应用的工具。通过`docker-compose`,你可以以一个单一的命令来启动和管理整个应用栈,这极大地简化了多容器应用的部署和管理过程。掌握这些命令将帮助你更有效地使用Docker和`docker-compose`来构建、测试和部署你的应用。

  1. `docker inspect --help`

这个命令用于获取`docker inspect`命令的帮助信息,了解其可用的选项和用法。`docker inspect`是一个非常强大的命令,它可以提供关于Docker对象(如容器、镜像、网络和卷)的详细信息。

  1. `docker system prune -a`

此命令用于清理所有未使用的资源,包括停止的容器、无用网络、无用镜像(无标签)以及悬空的卷。`-a`或`--all`选项表示也会删除所有未使用的卷。

  1. `docker attach my_container`

使用`docker attach`命令可以附加到一个正在运行的容器上。这允许你与容器内的进程进行交互,例如查看实时输出或与容器内的应用程序进行交互。

  1. `docker update --cpus="2.0" my_container`

`docker update`命令用于更新容器的配置。在这个例子中,我们使用`--cpus`参数来限制容器可以使用的CPU资源。这有助于在多任务环境中进行资源分配和限制。

  1. `docker network disconnect my_network my_container`

此命令用于将容器从网络中断开连接。这在你想要隔离容器或重新配置网络时非常有用。

  1. `docker logs --since 1h my_container`

使用`docker logs`命令的`--since`选项可以获取指定时间范围内的日志。在这个例子中,我们获取了过去1小时内`my_container`容器的日志。

  1. `docker build --progress=plain .`

在构建镜像时,`--progress`选项指定了进度输出的格式。`plain`选项表示输出简单的进度信息,这对于在不支持ANSI转义字符的环境中查看构建进度非常有用。

  1. `docker push --all-tags`

使用`docker push`命令的`--all-tags`选项可以推送一个镜像的所有标签到远程仓库。这在你想要确保所有版本的镜像都能被共享时非常有用。

  1. `docker rmi $(docker images -q -f "dangling=true")`

这个命令组合用于清理所有悬挂的镜像(dangling images),这些是一些不再被任何容器使用的镜像层。这有助于释放磁盘空间。

  1. `docker cp my_container:/path/in/container /path/on/host`

`docker cp`命令可以在容器和宿主机之间复制文件或目录。在这个例子中,我们从容器`my_container`内复制文件到宿主机的指定路径。

这些命令进一步扩展了Docker的功能,包括获取帮助信息、资源限制、容器操作、日志管理、镜像清理和文件传输等。掌握这些命令可以帮助你更深入地理解和使用Docker,从而更有效地管理你的容器化应用。在使用这些命令时,请确保你了解每个命令的具体作用和潜在的风险,以避免不必要的错误和数据丢失。

  1. `docker stats`

这个命令提供了一个实时的容器资源使用情况概览,包括CPU、内存、网络IO和块IO等信息。这对于监控容器性能和资源使用情况非常有用。

  1. `docker top my_container`

使用`docker top`命令可以查看在指定容器`my_container`内运行的进程。这对于分析和调试容器内部的应用程序非常有用。

  1. `docker build --build-arg HTTP_PROXY=http://proxy.example.com .`

在构建镜像时,可以使用`--build-arg`参数来设置构建时的环境变量。在这个例子中,我们设置了一个HTTP代理,这在你需要通过代理服务器访问外部资源时非常有用。

  1. `docker network create --driver bridge my_bridge_network`

创建一个新的网络`my_bridge_network`,并指定其驱动为`bridge`。这允许你创建自定义网络,以便更好地控制容器间的通信。

  1. `docker container update --memory=2g my_container`

使用`docker container update`命令可以更新运行中容器的配置。在这个例子中,我们将容器的内存限制设置为2GB。

  1. `docker image history my_image`

`docker image history`命令用于查看镜像的构建历史和变更记录。这对于了解镜像的来源和构建过程非常有用。

  1. `docker system df`

这个命令提供了Docker系统的空间使用情况概览,包括镜像、容器、卷和网络的空间占用。

  1. `docker run --cap-add=NET_ADMIN my_image`

使用`--cap-add`参数可以给容器添加特定的Linux能力。在这个例子中,我们给容器添加了`NET_ADMIN`能力,这允许容器执行一些需要特权的网络操作。

  1. `docker container ls --latest`

使用`--latest`参数可以列出最近创建或运行的容器。这对于快速找到并管理最新的容器实例非常有用。

  1. `docker image tag --force my_image:latest my_image:newtag`

使用`docker image tag`命令可以给镜像添加新的标签,或者强制覆盖已有的标签。在这个例子中,我们将`my_image:latest`的标签强制更改为`my_image:newtag`。

这些命令提供了更多的Docker操作和管理选项,涵盖了性能监控、进程查看、构建环境配置、网络配置、资源更新、历史追踪、空间管理等方面。通过熟练使用这些命令,你可以更加高效地管理和维护你的Docker环境,确保应用的稳定性和性能。记得在使用这些命令时,应谨慎操作,避免不必要的资源损失或系统安全风险。

  1. `docker run --network=host my_image`

此命令运行一个容器,并使用`--network=host`选项使得容器共享宿主机的网络命名空间。这允许容器直接使用宿主机的网络堆栈,适用于某些需要紧密集成网络操作的场景。

  1. `docker create --tty --interactive my_image`

使用`docker create`命令创建一个新容器,并通过`--tty`和`--interactive`选项为容器分配一个伪终端并保持标准输入开启。这对于创建需要交互式会话的容器非常有用。

  1. `docker inspect --type=image my_image`

通过`docker inspect`命令并使用`--type=image`选项,可以获取指定镜像的详细信息。这有助于了解镜像的结构和配置,以便更好地管理和使用镜像。

  1. `docker container stop $(docker container ls -aq)`

这个命令组合用于停止所有正在运行的容器。`docker container ls -aq`列出所有容器的ID,然后`docker container stop`命令将它们停止。

  1. `docker container rm -f $(docker container ls -aq -f "status=exited")`

类似于上一个命令,这个命令组合用于强制删除所有已退出的容器。`docker container ls -aq -f "status=exited"`列出所有已退出的容器ID,然后`docker container rm -f`命令将它们删除。

  1. `docker pull --all-tags my_image`

使用`docker pull`命令的`--all-tags`选项可以拉取指定镜像的所有标签。这确保你拥有该镜像的所有版本,对于需要特定版本的场景非常有用。

  1. `docker push --quiet my_image`

`docker push --quiet`命令用于将镜像推送到远程仓库,并使用`--quiet`选项以静默模式运行,只输出错误信息。这有助于在脚本中使用,减少不必要的输出。

  1. `docker run --entrypoint=/bin/sh my_image`

使用`--entrypoint`选项可以覆盖镜像的默认入口点。在这个例子中,我们将入口点更改为`/bin/sh`,这允许我们以不同的方式运行容器。

  1. `docker exec --user=1000 my_container /bin/bash`

使用`docker exec`命令并在`--user`选项中指定用户ID,可以以指定用户的身份运行命令。在这个例子中,我们以用户ID为1000的用户身份在容器`my_container`中启动bash。

  1. `docker logs --tail=100 my_container`

使用`docker logs`命令的`--tail`选项可以获取容器日志的最后100行输出。这对于查看容器最近的活动或错误信息非常有用。

这些命令进一步增强了Docker的灵活性和控制能力,涵盖了网络配置、容器交互、镜像管理、日志查看等多个方面。掌握这些命令可以帮助你更深入地理解Docker的工作原理,更有效地管理和维护你的容器化环境。在使用这些命令时,请确保你了解每个命令的具体作用和潜在的影响,以避免不必要的错误和风险。

  1. `docker run --mount type=bind,source=/path/on/host,target=/path/in/container my_image`

此命令使用 `--mount` 选项将宿主机上的目录或文件挂载到容器中。在这个例子中,我们将宿主机的 `/path/on/host` 目录挂载到容器的 `/path/in/container` 路径。这种绑定挂载允许容器与宿主机之间共享数据。

  1. `docker run --memory-swap=512m my_image`

使用 `--memory-swap` 选项可以为容器设置内存和交换文件的总量。在这个例子中,我们为容器设置了最大 512MB 的内存和交换空间。这有助于控制容器的资源使用,防止单个容器消耗过多系统资源。

  1. `docker container wait my_container`

`docker container wait` 命令用于等待容器停止运行。这对于在容器执行长时间运行的任务时,确保任务完成后再进行其他操作非常有用。

  1. `docker network create --subnet=172.28.0.0/16 my_custom_network`

使用 `docker network create` 命令并指定 `--subnet` 选项可以创建一个具有特定IP地址范围的自定义网络。这在需要精细控制容器网络配置时非常有用。

  1. `docker image rm --force my_image`

使用 `docker image rm` 命令并加上 `--force` 选项可以强制删除一个镜像,即使它被容器使用。这在你确定镜像不再需要时非常有用。

  1. `docker container ls --filter "status=running"`

使用 `--filter` 选项可以列出特定状态的容器。在这个例子中,我们只显示当前正在运行的容器。

  1. `docker exec --workdir /path/in/container my_container /bin/sh`

使用 `docker exec` 命令并加上 `--workdir` 选项可以指定容器内的工作目录。这在你想要在特定目录下执行命令时非常有用。

  1. `docker pull --quiet my_image:tag`

使用 `docker pull --quiet` 命令可以静默地拉取一个镜像的特定标签。这有助于在脚本中自动化镜像更新过程,同时减少输出信息。

  1. `docker system events`

`docker system events` 命令用于实时查看Docker守护进程的事件流。这对于监控Docker守护进程的活动和调试问题非常有用。

  1. `docker container top my_container`

`docker container top` 命令用于查看在指定容器内运行的进程的实时快照。这对于了解容器内部的进程状态和资源使用情况非常有用。

这些命令进一步扩展了Docker的功能,包括数据共享、资源限制、网络自定义、状态过滤、强制操作、工作目录设置、事件监控等方面。通过熟练使用这些命令,你可以更加高效地管理和维护你的Docker环境,确保应用的稳定性和性能。在使用这些命令时,请确保你了解每个命令的具体作用和潜在的影响,以避免不必要的错误和风险。

  1. `docker image build --file=Dockerfile.custom -t my_custom_image .`

使用 `docker image build` 命令并指定 `--file` 选项可以构建一个自定义的 Dockerfile 文件。在这个例子中,我们使用 `Dockerfile.custom` 作为构建基础,而不是默认的 `Dockerfile`。这允许你根据不同的需求定制镜像构建过程。

  1. `docker container run --detach-keys=ctrl-q,ctrl-c my_container`

使用 `--detach-keys` 选项可以在运行容器时定义从前台切换到后台的快捷键。在这个例子中,我们设置 `ctrl-q` 和 `ctrl-c` 作为快捷键。这使得你可以在不停止容器的情况下返回到命令行。

  1. `docker container rm -v my_container`

使用 `docker container rm` 命令并加上 `-v` 选项可以删除容器,并同时删除其关联的卷。这在你想要彻底移除容器及其数据时非常有用。

  1. `docker network disconnect --force my_network my_container`

使用 `docker network disconnect` 命令并加上 `--force` 选项可以强制将容器从网络中断开连接。这在你需要移除容器网络连接而容器无法正常停止时非常有用。

  1. `docker container exec -it --detach my_container`

使用 `docker container exec` 命令并加上 `--detach` 选项可以在后台启动一个新的交互式会话。这允许你在容器内启动长期运行的交互式进程。

  1. `docker image tag --force my_image:tag1 my_image:tag2`

使用 `docker image tag` 命令并加上 `--force` 选项可以强制重新标记一个镜像。这在你想要覆盖现有标签而不删除旧标签的情况下非常有用。

  1. `docker container logs --since 5m my_container`

使用 `docker logs` 命令并加上 `--since` 选项可以获取容器在过去5分钟内的日志。这有助于快速查看最近的容器活动。

  1. `docker image history --no-trunc my_image`

使用 `docker image history` 命令并加上 `--no-trunc` 选项可以获取镜像完整的历史记录,而不会对输出进行截断。这有助于查看镜像构建过程中的详细信息。

  1. `docker container run --init my_image`

使用 `--init` 选项运行容器可以在容器内启用一个轻量级的init进程。这个进程负责信号处理和重定向输出,使得容器的行为更接近于在系统上直接运行的进程。

  1. `docker container run --health-cmd "curl --fail http://localhost:8080/health" --health-interval 10s --health-retries 3 my_image`

使用 `--health-cmd` 选项可以在容器中定义一个健康检查命令。`--health-interval` 定义了健康检查的间隔,而 `--health-retries` 定义了在标记容器为不健康之前重试的次数。这有助于确保容器保持健康和响应状态。

这些命令进一步增强了 Docker 的灵活性和控制能力,涵盖了构建自定义镜像、容器操作、网络管理、健康检查等多个方面。掌握这些命令可以帮助你更深入地理解 Docker 的工作原理,更有效地管理和维护你的容器化环境。在使用这些命令时,请确保你了解每个命令的具体作用和潜在的影响,以避免不必要的错误和风险。

  1. `docker run --cap-drop=ALL my_image`

此命令运行一个容器并使用 `--cap-drop` 选项来移除容器的所有Linux能力(capabilities)。这是一种安全措施,用于限制容器能执行的操作,防止潜在的恶意行为。

  1. `docker container run --read-only my_container`

使用 `--read-only` 选项可以启动一个只读文件系统的容器。这有助于提高安全性,防止容器内的应用程序或用户对文件系统进行写操作。

  1. `docker exec --interactive --tty my_container /bin/bash`

此命令在已运行的容器 `my_container` 中执行 `/bin/bash` 命令,并使用 `--interactive` 和 `--tty` 选项来分配一个伪终端。这对于需要交互式会话的容器操作非常有用。

  1. `docker network inspect my_network`

使用 `docker network inspect` 命令可以获取指定网络的详细信息,包括子网、网关、IP范围等。这对于理解和管理容器网络非常有用。

  1. `docker container run --restart=on-failure:5 my_image`

使用 `--restart` 选项可以设置容器的重启策略。在这个例子中,我们设置为 `on-failure:5`,意味着如果容器失败,Docker将尝试重启它,最多5次。

  1. `docker container run --device /dev/my_device:/dev/my_container_device my_image`

使用 `--device` 选项可以将宿主机的设备添加到容器中。这在容器需要直接访问宿主机特定设备时非常有用。

  1. `docker container run --dns 8.8.8.8 --dns-search example.com my_image`

使用 `--dns` 选项可以指定容器使用的DNS服务器,而 `--dns-search` 选项可以设置DNS搜索域。这有助于定制容器的网络配置。

  1. `docker container run --entrypoint /path/to/entrypoint_script.sh my_image`

使用 `--entrypoint` 选项可以覆盖镜像指定的默认入口点脚本。这允许你使用自定义的启动脚本来运行容器。

  1. `docker container run --cpu-period=100000 --cpu-quota=50000 my_image`

使用 `--cpu-period` 和 `--cpu-quota` 选项可以限制容器的CPU使用。`--cpu-period` 表示一个周期的时长(以纳秒为单位),而 `--cpu-quota` 表示在这个周期内容器可以使用的CPU时间(以纳秒为单位)。

  1. `docker container run --security-opt label=type:enforcing my_image`

使用 `--security-opt` 选项可以应用特定的安全选项。在这个例子中,我们设置了SELinux的标签,以强制执行SELinux策略。

这些命令进一步增强了Docker的安全性和灵活性,涵盖了能力限制、文件系统只读、设备管理、DNS配置、重启策略、入口点管理、CPU限制和安全选项等方面。掌握这些命令可以帮助你更深入地理解Docker的工作原理,更有效地管理和维护你的容器化环境。在使用这些命令时,请确保你了解每个命令的具体作用和潜在的影响,以避免不必要的错误和风险。

相关推荐
吹什么轩1 小时前
linux系统复习:僵尸进程与孤儿进程
linux·运维·php
程序员老赵1 小时前
Docker 部署青龙面板:轻松搭建定时任务管理平台
前端·docker·开源
TTATTC1 小时前
为什么单会话聊天做不好复杂工程?Claude Code 创作者的并发 Worktree 与记忆闭环实践
docker·开源
张宇Joaquin1 小时前
AMD uProf 工具采集微架构特征使用介绍
服务器
TTATTC1 小时前
状态机驱动长事务,还是 DAG 编排高并发?高可靠业务流程引擎的双核架构设计
docker·开源
殷忆枫1 小时前
告别依赖地狱!在 Ubuntu 上用 Docker 极速部署 Home Assistant 与 MQTT,并接入 Siri 与嵌入式 C 终端
linux·ubuntu·docker
第404号工位1 小时前
手机到底有没有偷听我们?我抓包了 72 小时,抓到了真凶
linux·人工智能·架构
老李IT笔记2 小时前
连不上不一定是网不好:新系统不认的服务端配置卡在哪一档
运维·服务器·网络
字节跳动开源2 小时前
ByteDance 2026 上半年 Linux 内核贡献回顾
linux·开源
小此方2 小时前
Linux网络(二十八):从NAT转换到正反向代理:图解内网通信、NAPT端口映射
linux·运维·网络