Docker는 애플리케이션을 컨테이너라는 독립된 환경에서 실행할 수 있게 해주는 오픈 소스 플랫폼입니다. 이를 통해 개발자는 어디서든 일관된 환경에서 애플리케이션을 실행하고 관리할 수 있습니다. Docker를 사용하면 코드가 어디서 실행되든 동일한 결과를 얻을 수 있으므로 개발, 테스트, 배포 과정이 간소화됩니다. 아래에 Docker를 시작하는 데 필요한 기본적인 개념과 명령어들을 소개합니다.
1. Docker 설치
Docker를 사용하기 위해서는 먼저 Docker를 시스템에 설치해야 합니다.
- Windows: Docker Desktop for Windows
- macOS: Docker Desktop for Mac
- Linux: 각 배포판에 맞는 Docker 패키지 (Ubuntu, CentOS 등)
설치 링크: Docker 설치
2. Docker 기본 개념
- 이미지 (Image): 컨테이너의 실행 환경과 애플리케이션을 포함하는 읽기 전용 템플릿입니다. 예를 들어, Ubuntu, MySQL, Nginx와 같은 이미지를 사용할 수 있습니다.
- 컨테이너 (Container): 이미지를 기반으로 실행되는 독립된 애플리케이션 환경입니다. 여러 컨테이너를 동시에 실행할 수 있습니다.
- Dockerfile: 이미지를 빌드하기 위한 설정 파일입니다. 애플리케이션이 실행되는 환경을 정의합니다.
- Docker Hub: Docker 이미지를 공유하고 관리할 수 있는 온라인 저장소입니다.
3. Docker 사용 기본 명령어
Docker를 설치한 후에는 아래의 명령어들을 사용하여 Docker를 조작할 수 있습니다.
1. Docker 이미지 다운로드
Docker Hub에서 이미지를 다운로드 받습니다.
docker pull [이미지 이름]
예: docker pull ubuntu
2. Docker 컨테이너 실행
이미지를 기반으로 컨테이너를 실행합니다.
docker run [옵션] [이미지 이름]
예: docker run -it ubuntu /bin/bash
-it
: 상호작용 모드로 실행 (터미널 연결)-d
: 백그라운드에서 실행 (디태치드 모드)-p
: 포트 매핑 (예:-p 8080:80
)--name
: 컨테이너 이름 주기
3. 실행 중인 컨테이너 확인
현재 실행 중인 모든 컨테이너를 확인합니다.
docker ps
4. 모든 컨테이너 확인 (실행 중지 포함)
docker ps -a
5. 컨테이너 중지
실행 중인 컨테이너를 중지합니다.
docker stop [컨테이너 ID 또는 이름]
6. 컨테이너 시작
중지된 컨테이너를 다시 시작합니다.
docker start [컨테이너 ID 또는 이름]
7. 컨테이너 삭제
중지된 컨테이너를 삭제합니다.
docker rm [컨테이너 ID 또는 이름]
8. Docker 이미지 빌드
Dockerfile을 기반으로 이미지를 빌드합니다.
sudo apt-get install python3 //docker-compose needs distutils
docker build -t [이미지 이름] [Dockerfile 경로]
9. Dockerfile 예제
다음은 간단한 Dockerfile 예제입니다. 이 파일은 nginx
웹 서버를 기반으로 이미지를 생성합니다.
# 베이스 이미지로 nginx를 사용
FROM nginx:latest
# 컨테이너 내의 작업 디렉토리 설정
WORKDIR /usr/share/nginx/html
# 현재 디렉토리의 파일들을 컨테이너의 작업 디렉토리로 복사
COPY . .
# 기본 포트 노출
EXPOSE 80
이 Dockerfile을 사용하여 이미지를 빌드할 수 있습니다.
docker build -t my-nginx-image .
4. Docker Compose
Docker Compose는 여러 컨테이너를 정의하고 실행할 수 있는 도구입니다. docker-compose.yml
파일을 사용하여 서비스를 정의할 수 있습니다.
docker-compose 설치
# Docker Compose 업데이트
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose.yml 자세한 설명
docker-compose.yml 예제
version: '3'
services:
web:
image: nginx:latest
ports:
- "8080:80"
redis:
image: redis:latest
이 파일을 사용하여 두 개의 서비스를 한 번에 실행할 수 있습니다.
docker-compose up
5. Docker 관리 및 모니터링
- 로그 확인: 컨테이너의 로그를 확인할 수 있습니다.
docker logs [컨테이너 ID 또는 이름]
- 컨테이너 접속: 실행 중인 컨테이너에 들어가서 명령을 실행할 수 있습니다.
docker exec -it [컨테이너 ID 또는 이름] /bin/bash
6. 참고 자료
Docker는 처음에는 조금 복잡하게 느껴질 수 있지만, 조금만 사용해 보면 매우 강력하고 유용한 도구임을 알 수 있습니다. 기본적인 사용법을 익힌 후에는 좀 더 고급 기능과 개념을 학습하여 프로젝트에 적용해 보세요.
'가상 머신 > Docker' 카테고리의 다른 글
[ Docker ] Docker-Compose 설치하기 (0) | 2022.07.28 |
---|---|
[ Docker ] Dockerfile 작성하기 (0) | 2022.07.28 |
[ Docker ] usermod - 사용자에게 docker group 설정하기 (0) | 2022.07.27 |
[ Docker ] copy - Host 컴퓨터의 파일을 docker 내부로 복사하기 (0) | 2021.05.23 |
[ Docker ] Docker 설치 하기 (windows, mac, ubuntu) (0) | 2018.06.03 |