안녕하세요 !
오늘은 이전 포스팅에서 빌드한 Docker 이미지를 실제로 컨테이너로 생성하고 실행하는 방법에 대해 알아보려고 합니다. 이미지를 빌드한 후에는 이 이미지를 기반으로 컨테이너를 생성하여 애플리케이션을 실행할 수 있습니다.
이미지를 만든 후에는 동일한 이미지를 사용하여 여러 개의 컨테이너를 생성하여 서비스를 비교하거나 스케일 아웃할 수도 있습니다. 또한, 컨테이너를 삭제하더라도 해당 이미지가 존재한다면 다시 동일한 컨테이너를 쉽게 만들고 실행할 수 있습니다.
Docker는 이미지와 컨테이너를 분리하여 애플리케이션을 격리된 환경에서 실행하고 관리하는 데에 매우 유용한 도구입니다. 이미지를 컨테이너로 실행함으로써 애플리케이션을 간단하게 배포하고 확장할 수 있습니다.
그럼 이제 컨테이너의 사용 방법과 기능에 대해 하나씩 정리해보도록 하겠습니다.
* Docker 컨테이너란?
Docker 컨테이너는 Docker 플랫폼에서 실행되는 격리된 환경입니다. 컨테이너는 독립적으로 실행되는 프로세스로서, 운영체제 수준 가상화를 통해 애플리케이션과 그에 필요한 라이브러리, 실행 환경을 포함한 패키지를 격리된 형태로 실행합니다.
컨테이너는 Docker 이미지를 기반으로 생성됩니다. 이미지는 애플리케이션 실행에 필요한 모든 설정과 종속성을 포함하고 있으며, 컨테이너를 생성하는 데 사용됩니다. 이미지는 읽기 전용이므로 컨테이너에서 발생하는 변경 사항은 컨테이너 내부에 저장되며, 컨테이너가 삭제되면 변경 사항도 함께 삭제됩니다.
컨테이너는 호스트 운영체제의 커널을 공유하면서도 격리된 파일 시스템, 네트워크, 프로세스 공간을 가지고 있어 서로 독립적으로 실행될 수 있습니다. 이러한 격리된 환경은 컨테이너 간에 서로 영향을 주지 않고 독립적으로 실행되도록 합니다.
Docker 컨테이너는 가볍고 빠르게 생성되고 배포되며, 효율적으로 리소스를 활용할 수 있어 개발, 테스트, 배포 등 다양한 환경에서 사용됩니다. 컨테이너는 애플리케이션의 실행 환경을 표준화하고 격리된 상태로 유지하여 애플리케이션의 이식성, 확장성, 신뢰성을 향상시킬 수 있는 장점을 제공합니다.
* Docker 명령어
1. docker run
- Docker 컨테이너를 생성하고 실행하는 명령어입니다.
(예시) docker run -it --name 'container 명' 'image 명'
2. docker start
- 정지된 컨테이너를 시작하는 명령어입니다.
(예시) docker start 'container 명'
3. docker stop
- 실행 중인 컨테이너를 정지하는 명령어입니다.
(예시) docker stop 'container 명'
4. docker restart
- 컨테이너를 재시작하는 명령어입니다.
(예시) docker restart 'container 명'
5. docker rm
- 컨테이너를 삭제하는 명령어입니다.
(예시) docker rm 'container 명'
6. docker ps
- 실행 중인 컨테이너의 목록을 보여주는 명령어입니다.
(예시) docker ps
7. docker exec
- 실행 중인 컨테이너에서 명령어를 실행하는 명령어입니다.
(예시) docker exec -it 'container 명' command
8. docker logs
- 컨테이너의 로그를 확인하는 명령어입니다.
(예시) docker logs 'container 명'
9. docker inspect
- 컨테이너에 대한 자세한 정보를 출력하는 명령어입니다.
(예시) docker inspect 'container 명'
Docker 컨테이너를 다루기 위해 자주 사용되는 몇 가지 명령어를 정리해봤습니다.
이 외에도 다양한 Docker 컨테이너 관련 명령어가 있으며, 필요에 따라 Docker 공식 문서나 관련 자료를 참고하시면 도움이 될 것입니다.
1. 이미지 확인
이전에 빌드한 이미지를 확인하기 위해 docker images 명령어를 실행합니다. 이 명령어는 현재 시스템에 있는 모든 Docker 이미지를 보여줍니다.
그 다음으로, 지난번에 빌드한 dockersystem 이미지를 사용하여 컨테이너를 생성해 보도록 하겠습니다. 이렇게 생성한 컨테이너는 dockersystem 이미지를 기반으로 작동하게 됩니다.
2. 컨테이너 생성 명령어
docker run [options] [image]
위의 명령어는 컨테이너를 생성하기 위한 기본적인 명령어 구조입니다. 여기서 [options]는 선택 사항으로, 컨테이너 생성에 대한 추가 설정을 제공합니다. [image]는 생성하고자 하는 이미지의 이름이나 이미지 아이디를 설정하면 됩니다.
* 컨테이너 생성 & 실행
docker run --name dockersystem dockersystem:1.0
위의 명령어를 실행한 후 결과 콘솔 화면입니다.
위 명령어를 실행하면 Docker는 dockersystem:1.0 이미지를 기반으로 dockersystem이라는 이름의 컨테이너를 생성하고 실행합니다. 컨테이너는 백그라운드에서 실행되며, 해당 이미지에 정의된 설정과 명령을 따라 동작합니다. docker ps 명령어를 사용하여 컨테이너의 실행 상태를 확인할 수 있습니다.
이를 통해 dockersystem:1.0 이미지를 사용하여 dockersystem이라는 이름의 컨테이너를 생성하고 실행할 수 있습니다.
최종 정리
오늘은 Docker 컨테이너를 다루는 방법에 대해 정리해보았습니다. Docker 컨테이너는 애플리케이션을 격리된 환경에서 실행시키며, 이식성과 확장성을 향상시키는 뛰어난 기술입니다.
컨테이너를 다루는 방법을 익힌다면 Docker의 기본적인 사용법을 알게 되어서 기본적인 서비스를 구축하는 데 큰 도움이 될 것입니다. 하지만 Docker는 그것이 끝이 아닙니다. 더 크고 복잡한 시스템을 설계하고 개발하게 되면 Docker Swarm과 같은 도구들을 활용하여 서비스를 조율하고 확장할 수 있습니다. 이러한 도구들을 알고 있다면 보다 생산적인 서비스 제공이 가능할 것입니다.
앞으로도 Docker에 대한 다양한 주제를 다루어보며, Docker 컨테이너를 활용한 개발 및 배포 프로세스를 더욱 자세히 알아보도록 하겠습니다.
오늘도 저의 긴 글을 읽어주셔서 감사합니다!

'Docker' 카테고리의 다른 글
[Docker] 도커 PostgreSQL 설치하기 (0) | 2023.07.19 |
---|---|
[Docker] Dockerfile 작성 및 빌드하기 (0) | 2023.07.17 |
[Docker] 도커 MySQL 설치하기 (0) | 2023.07.13 |