📜  docker 访问容器 (1)

📅  最后修改于: 2023-12-03 14:40:50.441000             🧑  作者: Mango

Docker 访问容器

Docker是一个开源的容器化平台,可以帮助开发人员更有效地开发、部署和运行应用程序。当你创建并运行容器时,你需要能够访问容器的内部以及容器所运行的应用程序,本文将介绍如何通过Docker访问容器。

通过docker exec命令访问容器

有时候,你需要在运行的容器内执行一些命令。为了实现这个目的,你可以使用 docker exec 命令。使用该命令的格式如下:

$ docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  • OPTIONS 关于该命令的选项参数,可以为空。
  • CONTAINER 当前正在运行的容器名称或ID。
  • COMMAND 在容器中要执行的命令。
  • ARG 命令参数。

下面是一个示例:

$ docker exec -it my-app /bin/bash

在以上示例中,我们执行了一个交互式的 bash 命令,这会连接到当前运行的容器 my-app,我们可以在容器内执行命令,进行调试等操作。

通过docker attach命令访问容器

通过 docker attach 命令,可以连接到正在运行的容器的标准输入、输出和错误输出流。该命令的格式如下:

$ docker attach [OPTIONS] CONTAINER
  • OPTIONS 对于该命令的选项参数,可以为空。
  • CONTAINER 当前正在运行的容器名称或ID。

下面是一个示例:

$ docker attach my-app

在这个示例中,我们连接到了一个名为 my-app 的正在运行的容器,并在终端中使用了该容器的 STDIN、STDOUT 和 STDERR 流。

通过docker port命令访问容器

你可以运行在容器内运行的应用程序,以及在容器内运行的服务,为了访问它们提供的服务,你需要知道容器内部的端口号。使用 docker port 命令,可以查看正在运行的容器的端口映射。该命令可使用的格式如下:

$ docker container port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
  • OPTIONS 对于该命令的选项参数,可以为空。
  • CONTAINER 当前正在运行的容器名称或ID。
  • PRIVATE_PORT 容器内部应用程序的端口号。
  • PROTO 指定协议类型,如TCP或UDP。

下面是一个示例:

$ docker port my-app

在这个示例中,我们查看了正在运行的容器 my-app 中暴露的端口映射。

通过docker cp命令访问容器

使用 docker cp 命令,可以使用容器中的文件系统以及容器中的文件操作,将文件复制到主机文件系统,或从主机文件系统复制文件到容器。该命令可使用的格式如下:

$ docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- 
$ docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
  • OPTIONS 对于该命令的选项参数,可以为空。
  • CONTAINER 当前正在运行的容器名称或ID。
  • SRC_PATH 容器内部的源路径。
  • DEST_PATH 容器内部目标路径。

下面是一个示例:

$ docker cp my-app:/path/to/file ./local/path

在这个示例中,我们将 my-app 容器中的 /path/to/file 复制到本地机器上 ./local/path 目录中。

以上就是通过Docker访问容器的一些常规方法,希望能够为使用Docker容器的程序员们提供一些参考。