우리가 방금 빌드한 애플리케이션은 무엇일까? 이 애플리케이션은 NASA의 오늘의 천문 사진 서비스(Astronomy Picture of the Day)(https://apod.nasa.gov)에서 오늘 자 사진을 받아오는 간단한 REST API다. 받아온 사진은 캐시해 두었다가 다음에 또 같은 요청이 들어오면 전에 받아온 사진을 다시 보여 준다.
이 API는 이번 장에서 실행해 볼 전체 애플리케이션의 한 부분이다. 앞으로 여러 개의 컨테이너를 실행해 이들이 서로 통신하게 할 것이다. 컨테이너는 컨테이너가 실행될 때 부여되는 가상 네트워크 내 가상 IP를 통해 서로 통신한다. 이 가상 네트워크 역시 명령행 인터페이스를 통해 관리할 수 있다.
실습 컨테이너 간 통신에 사용되는 도커 네트워크를 생성하라.
docker network create nat
이 명령을 실행했을 때 오류 메시지가 출력된다면, nat이라는 이름의 도커 네트워크를 이미 생성했기 때문이다. 이 오류 메시지는 무시해도 좋다. 그리고 컨테이너를 실행할 때 --network 옵션을 사용하면 새로 만들 컨테이너를 연결할 네트워크를 직접 지정할 수 있다. 같은 네트워크 안에 속한 컨테이너 간에는 서로 자유롭게 통신이 가능하다.
실습 앞서 빌드한 이미지로부터 컨테이너를 실행하되, 80번 포트를 호스트 컴퓨터를 통해 공개하고 nat 네트워크에 컨테이너를 접속하라.
docker container run --name iotd -d -p 800:80 --network nat image-of-the-day