Docker에서 서버에 액세스하는 방법

PHPz
풀어 주다: 2023-04-10 15:27:00
원래의
1115명이 탐색했습니다.

Docker는 소프트웨어 개발, 테스트 및 생산 환경에서 널리 사용되는 경량 컨테이너화 기술입니다. Docker 컨테이너를 사용하면 다양한 환경에서 쉽게 사용할 수 있도록 애플리케이션과 해당 종속성을 휴대용 컨테이너로 패키징할 수 있습니다. 그러나 Docker 컨테이너를 사용하는 경우 Docker 컨테이너 내부의 서버에 액세스해야 할 수도 있습니다. 이 기사에서는 Docker 내부의 서버에 액세스하는 방법을 소개합니다.

1. docker exec 명령 사용

Docker는 실행 중인 컨테이너 내에서 명령을 실행할 수 있는 docker exec 명령을 공식적으로 제공합니다. 이 명령의 일반적인 구문은 다음과 같습니다:

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

其中,OPTIONS包括一系列参数,如-t(分配伪终端)、-i(保持STDIN打开)等等。CONTAINER是要执行命令的容器名称或ID,COMMAND是要执行的命令,ARG是命令的参数。

假设我们要在一个名为mycontainer的容器内部访问一个运行在80端口上的服务器,可以按照以下步骤进行:

  1. 使用docker exec命令进入容器:

docker exec -it mycontainer /bin/bash

  1. 在容器内部执行命令访问服务器:

curl http://localhost:80

以上命令中,-it参数用于为容器分配一个交互式终端,/bin/bash是要运行的shell命令。如果容器内部已经安装了curl客户端,我们就可以使用它访问服务器。

二、使用docker port命令

除了使用docker exec命令,我们还可以通过docker port命令来查看Docker容器内部的端口映射。该命令的一般语法如下:

docker port CONTAINER [PRIVATE_PORT[/PROTO]]

其中,PRIVATE_PORT是要映射的端口,PROTO是映射协议,如TCP或UDP等等。如果不指定PROTO,则默认为TCP。

假设我们要访问一个名为mycontainer的容器内部的80端口,可以按照以下步骤进行:

  1. 使用docker port命令查看mycontainer容器中80端口的映射:

docker port mycontainer 80

该命令将返回一个字符串,形如:

0.0.0.0:32789

其中,32789就是映射到mycontainer容器内部的80端口。

  1. 在主机上使用curl或其他客户端工具进行访问:

curl http://localhost:32789

以上命令中,localhost是主机名,32789是刚才从docker port命令中获取的端口号。

三、使用docker network命令

如果Docker容器运行在自己的网络中,我们就可以通过docker network命令将容器连接到主机或其他容器的网络。该命令的一般语法如下:

docker network connect [OPTIONS] NETWORK CONTAINER

其中,OPTIONS包括一系列参数,如--alias(为容器设置别名)、--ip(为容器设置IP地址)等等。NETWORK是要连接的网络名称或ID,CONTAINER是要连接到该网络的容器名称或ID。

假设我们要将一个名为mycontainer的容器连接到默认的bridge网络,并让其具有一个名为webserver的别名,可以按照以下步骤进行:

  1. 使用docker network命令将mycontainer连接到bridge网络:

docker network connect --alias webserver bridge mycontainer

  1. 在主机上使用curl或其他客户端工具进行访问:

curl http://webserver

그 중 OPTIONS에는 -t(할당)와 같은 일련의 매개변수가 포함되어 있습니다. 의사 터미널), -i(STDIN을 열어두기) 등 CONTAINER는 실행할 명령의 컨테이너 이름 또는 ID이고, COMMAND는 실행할 명령, ARG는 명령의 매개변수입니다.

mycontainer라는 컨테이너 내부의 포트 80에서 실행되는 서버에 액세스한다고 가정해 보겠습니다. 다음 단계를 수행할 수 있습니다.

  1. docker exec 명령을 사용하여 컨테이너에 들어갑니다.
docker exec -it mycontainer /bin/bash

  1. 컨테이너 내부에서 명령을 실행하여 서버에 액세스합니다.
컬 http://localhost:80🎜🎜위 명령에서 -it 매개변수는 컨테이너에 대화형 터미널을 할당하는 데 사용되며 /bin/bash는 실행할 셸 명령입니다. 컬 클라이언트가 컨테이너 내부에 설치되어 있으면 이를 사용하여 서버에 액세스할 수 있습니다. 🎜🎜2. docker port 명령을 사용하세요🎜🎜 docker exec 명령을 사용하는 것 외에도 docker port 명령을 사용하여 Docker 컨테이너 내부의 포트 매핑을 볼 수도 있습니다. 이 명령의 일반 구문은 다음과 같습니다. 🎜🎜docker port CONTAINER [PRIVATE_PORT[/PROTO]]🎜🎜여기서 PRIVATE_PORT는 매핑할 포트이고 PROTO는 TCP와 같은 매핑 프로토콜입니다. 또는 UDP 등. PROTO를 지정하지 않으면 기본값은 TCP입니다. 🎜🎜mycontainer라는 컨테이너 내에서 포트 80에 액세스하려고 한다고 가정하면 다음 단계를 수행할 수 있습니다. 🎜
  1. docker port 명령을 사용하여 mycontainer 컨테이너에서 포트 80의 매핑을 확인합니다.
🎜docker port mycontainer 80🎜🎜이 명령은 🎜🎜0.0.0.0:32789🎜🎜그 중 32789가 매핑된 형식의 문자열을 반환합니다. mycontainer 컨테이너 내부 포트 80으로. 🎜
  1. 호스트에서 컬이나 기타 클라이언트 도구를 사용하여 다음 항목에 액세스하세요.
🎜curl http://localhost:32789🎜 🎜 위 명령에서 localhost는 호스트 이름이고, 32789는 docker port 명령에서 방금 얻은 포트 번호입니다. 🎜🎜3. docker network 명령을 사용하세요🎜🎜Docker 컨테이너가 자체 네트워크에서 실행 중인 경우 docker network 명령을 사용하여 컨테이너를 호스트 또는 다른 컨테이너의 네트워크에 연결할 수 있습니다. 이 명령의 일반적인 구문은 다음과 같습니다: 🎜🎜docker network connect [OPTIONS] NETWORK CONTAINER🎜🎜 그중 OPTIONS에는 --alias(에 대한 별칭 설정)와 같은 일련의 매개 변수가 포함되어 있습니다. 컨테이너), --ip(컨테이너의 경우) 컨테이너 설정 IP 주소) 등이 있습니다. NETWORK는 연결할 네트워크 이름 또는 ID이고, CONTAINER는 연결할 컨테이너 이름 또는 ID입니다. 🎜🎜mycontainer라는 컨테이너를 기본 브리지 네트워크에 연결하고 webserver라는 별칭을 갖도록 한다고 가정합니다. 다음 단계를 수행할 수 있습니다. 🎜
  1. docker network 명령을 사용하여 mycontainer를 브리지에 연결합니다. 네트워크:
🎜docker network connect --alias webserver bridge mycontainer🎜
  1. 호스트에서 컬이나 다른 클라이언트를 사용하여 액세스하려면:
🎜curl http://webserver🎜🎜위 명령에서 webserver는 호스트에서 직접 액세스할 수 있는 컨테이너에 대해 설정한 별칭입니다. 🎜🎜Summary🎜🎜Docker 기술을 사용할 때 Docker 컨테이너의 내부 서버에 액세스하는 것은 중요한 문제입니다. 이 기사에서는 이 목표를 달성하는 세 가지 방법을 소개합니다. docker exec 명령을 사용하여 컨테이너 내부의 명령을 실행하는 것이 가장 기본적인 방법이며, docker port 명령을 통해 포트 매핑을 보는 것도 편리한 방법이며, docker network 명령을 사용하여 네트워크에 연결하면 내부 서버에 보다 유연하게 접근할 수 있습니다. 컨테이너. 실제 애플리케이션에서는 Docker 컨테이너 내부의 서버에 편리하고 빠르게 액세스하기 위해 특정 요구 사항에 따라 다양한 방법을 선택할 수 있습니다. 🎜

위 내용은 Docker에서 서버에 액세스하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿