Docker 컨테이너를 사용하는 방법
컨테이너는 모든 Docker 설치의 생명선입니다. Docker 플랫폼의 기반 역할을 하며 종속성과 버전 충돌을 걱정하지 않고 컴퓨터에서 서비스를 실행할 수 있습니다. 여기에서는 Docker CLI 도구를 사용하여 Docker 컨테이너를 만들고, 관리하고, 사용자 정의하는 기본 사항을 보여드립니다.
Docker 이미지를 찾고 가져오는 방법
Docker 컨테이너는 원래 시스템의 나머지 부분과 별도로 프로그램을 실행할 수 있는 특수한 유형의 소프트웨어 환경입니다. 이를 달성하기 위해 Docker는 “소프트웨어 이미지”를 사용합니다. 이는 컨테이너가 시작되는 기반 역할을 하는 프로그램의 정적 사본입니다.
이미지와 컨테이너를 이렇게 구분하면 소프트웨어를 필요한 대로 재생성하고 조정할 수 있습니다. 예를 들어, “httpd”와 같은 이미지를 가지고 있지만 “website1″과 “website2″라는 두 개의 별도 컨테이너를 만들 수 있습니다.
새로운 Docker 이미지를 보는 가장 쉬운 방법은 search
다음 하위 명령을 사용하는 것입니다.
시스템에 이미지를 다운로드하려면 다음 명령을 실행하세요.
다음 하위 명령 을 사용하여 시스템에 새 이미지를 올바르게 추가했는지 확인하세요 images
.
Dockerfiles를 사용하여 새 이미지 빌드
Docker Hub에서 미리 빌드된 이미지를 가져오는 것 외에도 Docker CLI에서 바로 이미지를 빌드할 수 있습니다. 이는 기존 소프트웨어 패키지의 사용자 정의 버전을 만들거나 새 앱을 Docker로 이식하려는 경우에 유용합니다.
이렇게 하려면 먼저 홈 디렉토리에 빌드 파일을 위한 폴더를 만듭니다.
좋아하는 텍스트 편집기를 사용하여 새 Dockerfile을 만듭니다.
새 Dockerfile에 다음 코드 줄을 붙여넣습니다.
“sample-site” 폴더를 만들고 기본 HTML 사이트를 복사하거나 만드십시오.
새로운 Dockerfile을 저장한 후 다음 명령을 실행하여 시스템에서 빌드하세요.
새 Docker 이미지가 Docker 이미지 목록에 있는지 확인하세요.
기존 컨테이너를 사용하여 새 이미지 빌드
Docker CLI 도구는 현재 시스템에 있는 컨테이너에서 새 이미지를 빌드할 수도 있습니다. 이는 기존 환경에서 이미 작업 중이고 현재 설정에서 새 이미지를 만들고 싶은 경우에 유용합니다.
이렇게 하려면 컨테이너가 현재 실행 중이 아닌지 확인하세요.
commit
컨테이너 이름 뒤에 하위 명령을 실행 한 다음, 그 뒤에 새 Docker 이미지 이름을 입력합니다.
.을 실행하여 새로운 Docker 이미지가 시스템에 있는지 확인하세요 docker images
.
Docker 컨테이너를 실행하고 중지하는 방법
Docker 이미지가 준비되었으므로 이제 이미지를 사용하여 첫 번째 컨테이너를 만들 수 있습니다. 이를 위해 하위 run
명령 다음에 실행하려는 이미지 이름을 사용합니다.
이렇게 하면 첫 번째 Docker 컨테이너를 실행하는 데는 효과가 있지만, 이렇게 하면 현재 셸 세션을 인계받습니다. 컨테이너를 백그라운드에서 실행하려면 하위 명령 -d
뒤에 플래그를 추가합니다 run
.
하위 명령 은 run
새 Docker 컨테이너의 동작을 변경할 수 있는 여러 추가 플래그를 포함할 수도 있습니다. 예를 들어, 플래그를 사용하면 --name
컨테이너에 사용자 정의 가능한 이름을 추가할 수 있습니다.
반면에, 플래그를 사용하여 --publish
Docker 컨테이너에 액세스할 수 있는 네트워크 포트를 리디렉션할 수 있습니다. 이는 주로 컨테이너가 권한이 있는 포트를 인수하지 않도록 하려는 경우에 유용합니다.
다음 명령을 실행하면 시스템에서 현재 실행 중인 모든 Docker 컨테이너를 확인할 수 있습니다.
하위 명령 과 유사하게 run
, ps
또한 동작 방식을 수정하는 몇 가지 플래그를 사용할 수 있습니다. 예를 들어, 현재 다운된 컨테이너를 보려면 플래그를 사용합니다 -a
.
실행 중인 컨테이너를 끄려면 stop
하위 명령 뒤에 컨테이너 ID나 Docker 컨테이너 이름을 사용합니다.
중지한 컨테이너는 다음 start
하위 명령을 다시 실행하여 다시 시작할 수 있습니다.
Docker 컨테이너 일시 중지 및 종료
Docker CLI 도구를 사용하면 실행 중인 컨테이너 프로세스를 일시적으로 일시 중지하고 종료할 수도 있습니다. Docker 설정에서 문제를 해결하고 잘못 작동하는 컨테이너를 격리하거나 중지하려는 경우 이 기능이 유용할 수 있습니다.
docker ps
시스템에서 실행 중인 모든 컨테이너를 나열하려면 다음을 실행합니다 .
관리하려는 컨테이너의 ID나 이름을 찾으세요.
pause
일시적으로 일시 중단하려는 컨테이너 이름 뒤에 하위 명령을 실행합니다 .
다음 하위 명령을 실행하여 중단된 프로세스를 다시 시작할 수 있습니다 unpause
.
잘못된 동작을 하는 프로세스를 중지하려면 kill
컨테이너 이름 뒤에 하위 명령을 실행합니다.
Docker 컨테이너를 검사하는 방법
컨테이너의 복잡한 세부 사항을 아는 것은 Docker 스택의 상태를 유지하는 데 중요한 부분입니다. 잠재적인 문제를 빠르게 살펴볼 수 있으며 전체 배포를 수정하고 다시 하는 것의 차이가 될 수 있습니다.
Docker 컨테이너 개요를 보려면 다음 inspect
하위 명령을 실행하세요.
이렇게 하면 전체 컨테이너의 현재 상태를 설명하는 긴 JSON 문자열이 인쇄됩니다. 출력을 jq로 파이프하거나 내장 플래그 -f
뒤에 인쇄하려는 JSON 객체를 사용하여 이를 좁힐 수 있습니다.
터미널에 컨테이너 로그 인쇄
그 외에도 현재 실행 중인 Docker 컨테이너의 로그를 추적하고 인쇄할 수도 있습니다. 이는 서비스가 현재 어떻게 동작하는지 확인하고 STDOUT으로 반환하는 출력을 살펴보고 싶을 때 유용할 수 있습니다.
이렇게 하려면 컨테이너 이름 뒤에 logs 하위 명령을 실행합니다.
또한 플래그와 함께 logs 하위 명령을 실행하여 Docker 서비스의 연속 로그를 만들 수 있습니다. 이는 UNIX 파이프 끝에서 --follow
실행하는 것과 비슷합니다 .tail -f
다른 하위 명령과 마찬가지로 Docker 컨테이너 로그의 출력을 사용자 정의하기 위해 다양한 플래그를 추가할 수도 있습니다. 예를 들어, 플래그는 --timestamps
컨테이너가 STDOUT으로 보내는 모든 메시지에 대한 자세한 타임스탬프를 추가합니다.
플래그 --details
는 현재 Docker 컨테이너에 대해 설정한 환경 변수도 인쇄합니다. 한편, 플래그를 사용하면 --since
특정 시점 이후에 발생한 로그만 표시할 수 있습니다.
Docker 컨테이너를 사용자 정의하는 방법
기본적으로 Docker 컨테이너는 현재 시스템 위에서 실행되는 작고 간소화된 Linux 버전입니다. 즉, 가상 머신과 유사하게 컨테이너 내부의 데이터에 액세스하고 검색할 수 있습니다.
호스트 머신에서 컨테이너로 로컬 파일을 복사하려면 cp
다음 하위 명령을 실행합니다.
때로는 컨테이너 내부에서 셸을 열어서 컨테이너에 “들어가야” 할 수도 있습니다. 이렇게 하면 파일을 편집하고, 바이너리를 설치하고, 필요에 따라 사용자 정의할 수 있습니다.
이제 예를 들어 “index.html”을 편집하여 해당 웹사이트의 홈페이지를 만들 수 있습니다.
컨테이너 셸을 종료하려면 Ctrl+를 누르거나 터미널에서 D실행하세요 .exit
Docker 컨테이너 및 이미지를 삭제하는 방법
사용하지 않는 Docker 컨테이너와 이미지를 제거하는 것은 배포를 위한 일반적인 정리 작업의 중요한 부분입니다. 그렇게 하면 서버에서 불필요한 파일을 제거하여 장기적으로 저장 공간을 절약할 수 있습니다.
컨테이너를 삭제하기 전에 먼저 컨테이너를 중지했는지 확인하세요.
이제 다음 하위 명령을 사용하여 컨테이너를 제거합니다 rm
.
.을 실행하여 오래된 Docker 컨테이너가 제대로 삭제되었는지 확인하세요 docker ps -a
.
Docker 배포에서 원래 Docker 이미지를 삭제합니다.
.을 실행하여 원래 Docker 이미지가 제대로 제거되었는지 확인하세요 docker images
.
Docker 컨테이너를 생성, 관리, 제거하는 방법을 배우는 것은 Linux 서버에서 할 수 있는 일 중 일부에 불과합니다.
이미지 출처: Shamin Haky via Unsplash . 모든 변경 사항과 스크린샷은 Ramces Red가 제공했습니다.
답글 남기기