[Docker] 도커

0 0 0

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