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