도커 네트워크란?
도커의 컨테이너들은 결국 논리적 컴퓨터들이라고 볼 수 있다.
현실에서 물리적 컴퓨터들을 LAN케이블과 스위치에 물리면 하나의 네트워크를 형성할 수 있다.
도커의 컨테이너들은 가상의 컴퓨터이기에 가상의 네트워크도 만들 수 있다.
도커 네트워크를 사용하면 다른 컨테이너의 웹서버를 컨테이너 명으로 접속할 수 있다.
도커 네트워크는 도커가 제공하는 네트워크 서비스 라고 생각한다.
도커 네트워크를 사용한 예제 진행 순서
1. 도커 네트워크 만들기
2. nginx 이미지를 사용해 메인과 서브 컨테이너 만들기
3. 접속시 보여줄 서브 컨테이너 웹서버의 index.html 수정
4. 만들어준 컨테이너를 네트워크에 연결
5. 메인 컨테이너에서 서브 컨테이너 명으로 웹서버 접속하기
1. 도커 네트워크 만들기
사용중인 os의 cli 에서 "docker network create 옵션 이름"
위 명령어로 네트워크를 생성한다.
"docker network ls" 명령어로 네트워크 목록을 확인해보면 아래와 같이 생성된 것을 볼 수 있다.
2. nginx 이미지를 사용해 메인과 서브 컨테이너 만들기
최신버전의 nginx 이미지를 pull 해준다
받아온 nginx 이미지에는 vi에디터가 설치 안되어 있으므로 컨테이너로 올린 다음 아래와 같은 순서로 설치해주고 이미지로 만들어준다.
이제 해당 이미지를 이용해 컨테이너를 3개 만들어준다.
이렇게 3개를 만들어 줬다. nginx_custom이 메인으로 사용할 컨테이너다.
3. 접속시 보여줄 서브 컨테이너 웹서버의 index.html 수정
nginx의 이미지를 가지고 만들었기 때문에 위 경로에 index.html파일이 있다.
html의 title과 h1태그에 slave1임을 확인할 수 있게 적어 줬다.
다른 서브 컨테이너 nginx_slave2 컨테이너에도 위와 같이 바꿔준다.
4. 만들어준 컨테이너를 네트워크에 연결
위와 같이 명령어를 입력하면 컨테이너를 위에서 만들어준 네트워크에 연동된다.
연결되었는지 확인할려면 아래와 같이 입력하면 된다.
json형태로 쭈르르 나오는 데, 아래 이 부분을 보면 연결된것을 볼 수 있다.
나머지 메인 컨테이너(글쓴이의 경우 nginx_custom)와 나머지 nginx_slave2 도 똑같이 연결해준다.
5. 메인 컨테이너에서 서브 컨테이너 명으로 웹서버 접속하기
이제 메인 컨테이너에 접속해서 curl에 "http://원하는서브컨테이너명 "으로 접속해보면 바꿔놓았던 html을 볼 수 있다.