소개
이 랩에서는 Docker Desktop 내에서 model-runner 명령을 사용하여 Docker Model Runner 설정을 관리하는 방법을 배우게 됩니다. 기본 TCP 포트에서 수신하도록 Docker 데몬을 활성화하고, 사용자 지정 TCP 포트에서 수신하도록 구성하며, 마지막으로 Docker Model Runner 에 대한 TCP 연결을 비활성화하는 방법을 다룹니다.
실습 단계를 통해 Docker 데몬 구성 파일 (daemon.json) 을 수정하여 데몬이 수신하는 네트워크 인터페이스를 제어하고, 변경 사항을 적용하기 위해 Docker 서비스를 다시 시작하며, 원격 액세스 및 보안을 위해 TCP 연결을 활성화 또는 비활성화하는 것의 의미를 이해하게 됩니다.
기본 TCP 포트로 Docker Model Runner 활성화
이 단계에서는 Docker 데몬이 기본 TCP 포트에서 연결을 수신하도록 활성화하는 방법을 배우겠습니다. 기본적으로 Docker 데몬은 로컬 액세스에 더 안전한 Unix 소켓을 통해 통신합니다. 그러나 원격 액세스 또는 특정 사용 사례의 경우 TCP 를 활성화해야 할 수 있습니다.
Docker 데몬이 TCP 포트에서 수신하도록 활성화하려면 구성 파일을 수정해야 합니다. Docker 의 주요 구성 파일은 일반적으로 /etc/docker/daemon.json에 위치합니다. 이 파일이 존재하지 않으면 생성할 수 있습니다.
먼저 daemon.json 파일이 존재하는지 확인해 보겠습니다. 이를 위해 ls 명령을 사용할 수 있습니다.
ls /etc/docker/daemon.json
파일이 존재하면 명령은 해당 경로를 출력합니다. 존재하지 않으면 파일 또는 디렉토리를 찾을 수 없다는 오류 메시지가 표시됩니다.
이제 nano 편집기를 사용하여 /etc/docker/daemon.json 파일을 편집하거나 생성합니다. hosts 키를 수정하여 TCP 주소와 포트를 포함합니다. Docker 의 기본 TCP 포트는 2375 (암호화되지 않음) 또는 2376 (TLS 암호화) 입니다. 이 단계에서는 단순성을 위해 암호화되지 않은 포트 2375 를 사용합니다.
nano로 파일을 엽니다.
sudo nano /etc/docker/daemon.json
파일이 비어 있거나 존재하지 않은 경우 다음 내용을 추가합니다. 파일에 이미 내용이 있는 경우 hosts 키를 수정하여 "tcp://0.0.0.0:2375"를 포함합니다. unix:///var/run/docker.sock 항목은 데몬이 기본 Unix 소켓에서도 계속 수신하도록 보장합니다.
{
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}
내용을 추가하거나 수정한 후 Ctrl + X를 누르고, Y를 눌러 확인하고, Enter를 눌러 파일 이름으로 저장합니다.
변경 사항을 적용하려면 Docker 서비스를 다시 시작해야 합니다. systemctl 명령을 사용하여 이 작업을 수행할 수 있습니다.
sudo systemctl restart docker
Docker 서비스를 다시 시작한 후 ss 명령을 사용하여 수신 소켓을 확인하여 TCP 포트에서 수신하고 있는지 확인할 수 있습니다. 포트 2375 에서 수신하는 프로세스를 찾습니다.
sudo ss -tuln | grep 2375
Docker 데몬이 포트 2375 에서 성공적으로 수신하고 있다면 다음과 유사한 출력이 표시되어 해당 포트에서 수신하는 프로세스를 나타냅니다.
tcp LISTEN 0 4096 0.0.0.0:2375 0.0.0.0:*
이는 Docker 데몬이 이제 포트 2375 에서 TCP 를 통해 액세스할 수 있음을 확인합니다.
사용자 지정 TCP 포트로 Docker Model Runner 활성화
이전 단계에서는 Docker 데몬이 기본 TCP 포트 2375 에서 수신하도록 활성화했습니다. 이 단계에서는 기본 포트 대신 사용자 지정 TCP 포트에서 수신하도록 Docker 데몬을 구성하는 방법을 배우겠습니다. 이는 보안상의 이유 또는 포트 충돌을 방지하기 위해 유용할 수 있습니다.
다시 /etc/docker/daemon.json 파일을 수정합니다. TCP 포트를 2375 에서 사용자 지정 포트 (예: 2376) 로 변경합니다.
nano 편집기를 사용하여 daemon.json 파일을 엽니다.
sudo nano /etc/docker/daemon.json
hosts 키를 수정하여 TCP 포트를 2375 에서 2376 으로 변경합니다. 파일의 내용은 다음과 같아야 합니다.
{
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2376"]
}
Ctrl + X를 누르고, Y를 눌러 확인하고, Enter를 눌러 파일 이름으로 저장합니다.
구성을 수정한 후 변경 사항을 적용하려면 Docker 서비스를 다시 시작해야 합니다.
sudo systemctl restart docker
이제 Docker 데몬이 새 사용자 지정 TCP 포트 2376 에서 수신하고 기본 포트 2375 에서는 더 이상 수신하지 않는지 확인해 보겠습니다. 다시 ss 명령을 사용할 수 있습니다.
먼저 포트 2376 을 확인합니다.
sudo ss -tuln | grep 2376
포트 2376 에서 프로세스가 수신하고 있음을 나타내는 출력이 표시되어야 합니다.
tcp LISTEN 0 4096 0.0.0.0:2376 0.0.0.0:*
다음으로, 더 이상 포트 2375 에서 수신하지 않는지 확인해 보겠습니다.
sudo ss -tuln | grep 2375
이 명령은 출력을 생성하지 않아야 하며, 이는 Docker 데몬이 더 이상 포트 2375 에서 수신하지 않음을 나타냅니다.
이는 Docker 데몬이 사용자 지정 TCP 포트에서 수신하도록 성공적으로 구성되었음을 확인합니다.
Docker Model Runner 의 TCP 연결 비활성화
이전 단계에서는 Docker 데몬이 기본 및 사용자 지정 TCP 포트에서 수신하도록 활성화했습니다. TCP 를 활성화하는 것은 원격 액세스에 유용할 수 있지만, 필요하지 않을 때는 비활성화하고 로컬 통신을 위해 기본 Unix 소켓에 의존하는 것이 일반적으로 더 안전합니다.
이 단계에서는 구성 파일에서 TCP 호스트 항목을 제거하여 Docker 데몬에 대한 TCP 연결을 비활성화하는 방법을 배우겠습니다.
nano 편집기를 사용하여 /etc/docker/daemon.json 파일을 다시 수정합니다.
daemon.json 파일을 엽니다.
sudo nano /etc/docker/daemon.json
hosts 키를 수정하여 TCP 항목 ("tcp://0.0.0.0:2376" 또는 이전 단계에 따라 "tcp://0.0.0.0:2375") 을 제거합니다. 파일의 내용은 이제 Unix 소켓 항목만 포함해야 합니다.
{
"hosts": ["unix:///var/run/docker.sock"]
}
Ctrl + X를 누르고, Y를 눌러 확인하고, Enter를 눌러 파일 이름으로 저장합니다.
구성을 수정한 후 변경 사항을 적용하려면 Docker 서비스를 다시 시작해야 합니다.
sudo systemctl restart docker
이제 Docker 데몬이 더 이상 TCP 포트에서 수신하지 않는지 확인해 보겠습니다. ss 명령을 사용하여 포트 2375 와 2376 을 모두 확인합니다.
포트 2375 를 확인합니다.
sudo ss -tuln | grep 2375
이 명령은 출력을 생성하지 않아야 합니다.
포트 2376 을 확인합니다.
sudo ss -tuln | grep 2376
이 명령도 출력을 생성하지 않아야 합니다.
이는 Docker 데몬에 대한 TCP 연결을 성공적으로 비활성화했음을 확인합니다. 이제 데몬은 로컬 액세스에 대한 더 안전한 기본 구성인 기본 Unix 소켓을 통해서만 액세스할 수 있습니다.
요약
이 랩에서는 Docker 데몬에 대한 TCP 연결을 활성화 및 비활성화하여 Docker Model Runner 설정을 관리하는 방법을 배웠습니다. /etc/docker/daemon.json 구성 파일을 수정하여 Docker 데몬이 기본 TCP 포트 2375 에서 수신하도록 설정하는 것으로 시작했습니다. hosts 배열에 "tcp://0.0.0.0:2375"를 포함시킨 다음 Docker 서비스를 다시 시작했습니다.
또한 이 랩에서는 사용자 지정 TCP 포트로 Docker 데몬을 활성화하는 방법과 daemon.json 파일의 hosts 배열에서 TCP 항목을 제거하고 Docker 서비스를 다시 시작하여 TCP 연결을 완전히 비활성화하는 방법을 다룹니다. 이러한 단계는 다양한 사용 사례에 맞게 Docker 의 네트워크 접근성을 구성하는 방법을 보여줍니다.



