
docker compose에는 옵션이 있지만 external_links
어떻게 작동합니까?
/etc/hosts에 쓰기 만 link
하지만 external_links
그렇지 않습니다.
부두에서는 이에 대해 아무도 언급하지 않으므로 이 옵션이 어떻게 작동하는지 설명해주세요.
답변1
다음과 같이 docker-compose.yml을 생성하면:
version: '2'
services:
sleep-one-hour:
image: alpine
command: sleep 3600
external_links:
- google.com:216.58.222.110
그리고 기본 네트워크 구성을 지정하지 마십시오. docker-compose는 실제로 명령을 실행하는 폴더 이름으로 사용자 정의 기본 네트워크를 생성합니다 docker-compose up
.
[myserver:external-links-test] docker-compose up
Creating network "externallinkstest_default" with the default driver
Creating externallinkstest_sleep-one-hour_1
Attaching to externallinkstest_sleep-one-hour_1
그런 다음 컨테이너가 생성되어 이 사용자 지정 네트워크에 연결되고, 컨테이너가 네트워크에 연결될 때 외부 링크가 설정됩니다. 최근 생성된 컨테이너를 검사하여 직접 확인할 수 있습니다.
[myserver:~] docker inspect 1056bb135bc0
[
{
"Id": "1056bb135bc0200dcfff1fa25affd561042e0515641adf435e4b63a16903f93d",
"Created": "2017-01-26T14:31:57.928385177Z",
... other info ...
"NetworkSettings": {
... other info ...
"Networks": {
"externallinkstest_default": {
"IPAMConfig": null,
"Links": [
"google.com:216.58.222.110"
],
"Aliases": [
"1056bb135bc0",
"sleep-one-hour"
],
"NetworkID": "343121714be4750eebf12997fa73c3aaba0f2cf5faace633ab1ca683a2959632",
"EndpointID": "74f1a975236a8ab0f60379408faa04022f1b9e398c7b8a541158c4ca889aff98",
"Gateway": "172.20.0.1",
"IPAddress": "172.20.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:14:00:02"
}
}
}
}
]
실제로 는 docker-compose up
순수 docker 명령에서 다음과 같이 변환됩니다.
[myserver:external-links-test] docker network create --attachable --subnet 61.0.0.0/24 externallinkstest_default
13f1b9caad1b997245be0fe48922ff04568c7bcf1e3bdd8846d87f53934ca390
[myserver:external-links-test] docker run -d --name externallinkstest_sleep-one-hour_1 alpine sleep 3600
17b642eb4a3cb562783ae76192589d55cb9174cd2c8a705464f62108ff11372c
[myserver:external-links-test] docker network connect --link google.com:216.58.222.110 externallinkstest_default externallinkstest_sleep-one-hour_1