Docker
[Docker] 도커
Docker
도커는 개발 환경이 설치된 모습을 이미지로 저장하고, 이 이미지를 클라우드에 올려 공유합니다. 이미지들이 서로 연결되어 동작하는 설정은 문서(Dockerfile)로 저장합니다.
운영체제마다 환경이 달라서 가상 머신(VM)으로 같은 환경을 맞춰 쓰는 방법이 있었지만, 내 컴퓨터와 가상 머신을 모두 부팅해야 하고 컴퓨터 안에 컴퓨터를 하나 더 돌리는 셈이라 매우 느렸습니다.
그래서 **운영체제의 핵심 기능(커널)은 공유하는 가벼운 가상 환경**이 나왔는데, 그것이 **도커(Docker)**입니다.
macOS와 Linux는 구조가 비슷하지만 Windows는 전혀 달라서, Windows에서는 WSL을 설치해야 도커를 사용할 수 있습니다.
WSL => Windows Subsystem for Linux
Node.js나 MySQL처럼 필요한 프로그램을 미리 설치한 환경을 Dockerfile로 정의해 공유할 수 있습니다.
도커의 장점
- Linux로 통일되어 환경 차이로 인한 충돌이 없음 (개발·배포 환경 통일)
- 필요한 프로그램이 미리 설치된 환경을 사용 (프로그램 미리 설치)
- 가상 머신보다 훨씬 가벼움 (가벼운 가상 컴퓨터)
필요한 이미지는 Docker Hub에서 찾을 수 있습니다.

Git, npm, Docker 비교
Dockerfile 만들기
From ubuntu:22.04 // 우분투 22.04버젼 다운받기
.dockerignore (.gitignore처럼 이미지에 포함하지 않을 파일을 설정)

실행이 완료된 화면입니다. 다만 도커 컨테이너의 localhost:3000에 접속하려면 포트 설정이 필요합니다.
Docker 배포
자주 쓰는 명령어
# 설치 확인
docker --version
docker-compose --version
# 이미지 빌드
docker-compose build
# 컨테이너 실행
docker-compose up
# 컨테이너 접속
docker exec -it 컨테이너ID /bin/bash
exit
# 로그 확인
docker-compose logs
docker-compose logs -f
docker-compose logs -f --tail=4
# 중지 / 삭제
docker-compose stop
docker-compose down
EC2(Amazon Linux)에서 실행한 명령어
# 도커 설치
sudo amazon-linux-extras install docker
# 도커 실행 권한 부여
sudo usermod -aG docker ec2-user
# Docker Compose 설치
sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
# 실행 권한 부여
sudo chmod +x /usr/local/bin/docker-compose
댓글 0