Docker 구성 방법
가상서버에서 Docker를 정상적으로 사용하기 위해서는 아래와 같은 설정이 필요합니다.
1. Docker란?
Docker는 가상화된 공간에서 애플리케이션을 개발, 제공, 실행할 수 있는 플랫폼입니다.
Docker Container를 사용하여 하나의 VM(host machine)위의 격리된 환경에서 애플리케이션을 관리할 수 있습니다.
Docker를 사용하면 경량화된 이미지로 컨테이너를 빠르게 배포할 수 있으며, 가상화된 공간을 사용할 때의 성능 또한 손실이 거의 없습니다.
Docker의 장점 및 특징은 다음과 같습니다.
애플리케이션의 개발과 배포가 편해집니다.
애플리케이션의 독립성과 확장성이 높아집니다.
2. Docker 설치하기
운영체제에 따른 Docker Engine 설치 방법은 다음과 같습니다.
CentOS, Rocky, Almalinux : Install Docker Engine on CentOS
Ubuntu : Install Docker Engine on Ubuntu
3. Docker MTU 설정하기
가상서버에 Docker를 설치하면 가상서버와 Docker의 MTU 수치가 달라 통신이 불가능합니다.
가상서버에서 MTU 설정 정보는 다음과 같이 확인할 수 있습니다.
가상서버에 설정된 MTU는 1450(eth0)이고, Docker 서비스가 사용하는 MTU는 1500(docker0)입니다.
따라서 Docker에서 가상서버로 넘어오는 Packet에 Packet loss가 발생하여 통신 오류가 생기게 됩니다.
아래의 2가지 방법으로 해당 문제를 해결할 수 있으며, 리눅스 사용이 익숙하지 않은 사용자의 경우 좀 더 간단하게 해결할 수 있는 (1)번 방법을 권장합니다.
(1) Host Network 사용 설정하기
docker run을 할 때 --network 옵션을 사용하여 해당 컨테이너가 Host Network를 사용하도록 설정합니다.
컨테이너가 Host Network를 사용하면 별도의 네트워크 인터페이스가 생성되지 않아 MTU 변경 없이 사용 가능합니다.
(2) Docker MTU 설정 변경하기
a. Docker MTU를 1450으로 변경하기
b. Docker 데몬 재시작하기
c. 변경된 MTU 확인하기
d. Docker Container의 정상 동작 확인하기
테스트 용으로 nginx 컨테이너 하나를 생성합니다.
생성한 my_nginx 컨테이너의 shell에 접속하고, curl로 외부 web의 정보를 정상적으로 가져오는지 확인합니다.
Last updated