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端口上的服务器,可以按照以下步骤进行:
docker exec -it mycontainer /bin/bash
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端口,可以按照以下步骤进行:
docker port mycontainer 80
该命令将返回一个字符串,形如:
0.0.0.0:32789
其中,32789就是映射到mycontainer容器内部的80端口。
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的别名,可以按照以下步骤进行:
docker network connect --alias webserver bridge mycontainer
curl http://webserver
docker exec -it mycontainer /bin/bash
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
🎜🎜여기서 PRIVATE_PORT는 매핑할 포트이고 PROTO는 TCP와 같은 매핑 프로토콜입니다. 또는 UDP 등. PROTO를 지정하지 않으면 기본값은 TCP입니다. 🎜🎜mycontainer라는 컨테이너 내에서 포트 80에 액세스하려고 한다고 가정하면 다음 단계를 수행할 수 있습니다. 🎜docker port mycontainer 80
🎜🎜이 명령은 🎜🎜0.0.0.0:32789
🎜🎜그 중 32789가 매핑된 형식의 문자열을 반환합니다. mycontainer 컨테이너 내부 포트 80으로. 🎜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라는 별칭을 갖도록 한다고 가정합니다. 다음 단계를 수행할 수 있습니다. 🎜docker network connect --alias webserver bridge mycontainer
🎜curl http://webserver
🎜🎜위 명령에서 webserver는 호스트에서 직접 액세스할 수 있는 컨테이너에 대해 설정한 별칭입니다. 🎜🎜Summary🎜🎜Docker 기술을 사용할 때 Docker 컨테이너의 내부 서버에 액세스하는 것은 중요한 문제입니다. 이 기사에서는 이 목표를 달성하는 세 가지 방법을 소개합니다. docker exec 명령을 사용하여 컨테이너 내부의 명령을 실행하는 것이 가장 기본적인 방법이며, docker port 명령을 통해 포트 매핑을 보는 것도 편리한 방법이며, docker network 명령을 사용하여 네트워크에 연결하면 내부 서버에 보다 유연하게 접근할 수 있습니다. 컨테이너. 실제 애플리케이션에서는 Docker 컨테이너 내부의 서버에 편리하고 빠르게 액세스하기 위해 특정 요구 사항에 따라 다양한 방법을 선택할 수 있습니다. 🎜위 내용은 Docker에서 서버에 액세스하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!