컨테이너를 서로 연결하는데 사용할 수 있는 기술 중 하나인 레거시 연결(legacy linking)에 대해 알아보도록 하겠습니다. 두 컨테이너를 연결하는 방법은 레거시 연결 이외에 컨테이너 네트워크를 만들어서 연결할 수도 있지만 이번에는 가장 쉬운 방법인 컨테이너 이름으로 연결하는 방법을 알아보도록 하겠습니다.
이름으로 컨테이너 연결하기(legacy linking)
레거시 연결은 컨테이너의 이름을 지정한 후 다른 컨테이너가 동일한 이름을 사용하여 컨테이너에 연결할 수 있는 매우 간단한 기술입니다. 어떻게 작동하는지 단계별로 살펴 보도록 하겠습니다.
컨테이너와 컨테이너를 연결하는 단계
- 먼저 이름으로 연결하려는 컨테이너를 실행해야합니다.
- 이제 다른 컨테이너를 실행하면서 연결시킬 컨테이너의 이름을 연결시켜 줍니다.
- 다른 컨테이너가 있을 경우 위 과정을 계속 반복합니다.
1. 이름을 가지는 컨테이너 실행
docker run -d --name my-postgres postgres
--name을 써서 특정 컨테이너에 이름을 지정할 수 있습니다. 컨테이너 ID 또는 Docker에 의해 자동으로 생성된 별칭을 사용할 수 있지만, 각 실행 중인 컨테이너에 고유한 사용자 지정 이름을 사용할 수 있습니다. 위 커맨드에서는 my-postgres라는 컨테이너의 이름을 정의하고 있습니다.
2. 컨테이너끼리 연결
이름을 지정했으므로 2단계로 넘어가서 다른 컨테이너를 이 데이터베이스 컨테이너에 연결할 수 있게 되었습니다. 예를 들어 asp.net 컨테이너를 실행하고 싶다고 가정해 보겠습니다.
docker run -d -p 5000:5000 --link my-postgres:postgres fornquery/aspnetcore
--link 명령줄로 다른 컨테이너와 연결을 할 수 있습니다. my-postgres는 1단계에서 실행한 컨테이너 이름이고 asp.net 컨테이너와 연결시킬 컨테이너로 지정하고 있습니다. 그리고 콜론(:) 뒤에 aspnetcore 컨테이너에서 내부적으로 사용할 수 있는 별칭을 postgres로 지정하고 있습니다. 예를 들어 데이터베이스 연결 문자열에서 이 postgres 별칭을 사용할 수 있게 됩니다.
3. 다른 컨테이너가 있다면 1,2 반복
마지막으로 다른 또 다른 컨테이너와 연결시킬 필요가 있을 경우에는 위 두 과정, 즉 다른 컨테이너를 시작하면서 이름을 지정하고 다음 컨테이너에 연결을 하는 것을 반복하게 됩니다.
커맨드 라인에서 Docker 클라이언트를 사용하여 연결시키는 방법을 알아보았습니다. 이제 다음 포스트에서 실제 실습을 해보도록 하겠습니다. 자주 사용하는 몽고 디비와 Node.js 컨테이너를 연결시키는 걸 실습하겠습니다.
여기까지 읽어주셔서 감사합니다.
'Container > Docker' 카테고리의 다른 글
[Docker] 컨테이너 네트워크 란, 네트워크 만들기 (0) | 2022.04.26 |
---|---|
[Docker] 두 컨테이너 연결, 노드 컨테이너와 몽고디비 컨테이너 연결하기 (0) | 2022.04.25 |
[Docker] 도커 Node.js 이미지 만들기 (0) | 2022.04.21 |
[Docker] Dockerfile 만들기 (0) | 2022.04.20 |
[Docker] Dockerfile 이란? 도커파일 개념 잡기 (0) | 2022.04.18 |
최근댓글