운영체제 준비#
도커는 리눅스 운영체제에서 가장 안정적으로 동작한다. 이 가이드는 우분투 20.04 LTS를 기준으로 한다.
도커 설치#
기존 패키지 제거#
시스템에 이전 버전의 도커가 설치되어 있다면 제거한다.
1
| sudo apt-get remove docker docker-engine docker.io containerd runc
|
필수 패키지 설치#
도커 설치에 필요한 패키지를 설치한다.
1
2
3
4
5
6
7
| sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
|
도커 공식 GPG 키 추가#
도커의 패키지 저장소를 사용하기 위해 GPG 키를 추가한다.
1
| curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
도커 저장소 추가#
도커 패키지 저장소를 시스템에 등록한다.
1
2
3
| echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
도커 엔진 설치#
도커 엔진과 관련 도구를 설치한다.
1
2
| sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
|
도커 설정#
사용자 권한 설정#
도커 명령어를 sudo 없이 실행할 수 있게 설정한다.
1
2
| sudo usermod -aG docker $USER
newgrp docker
|
도커 서비스 시작#
도커 서비스를 시작하고 시스템 부팅 시 자동 시작되도록 설정한다.
1
2
| sudo systemctl start docker
sudo systemctl enable docker
|
설치 확인#
도커가 정상적으로 설치되었는지 확인한다.
1
2
| docker --version
docker run hello-world
|
첫 컨테이너 실행#
nginx 웹 서버 실행#
nginx 웹 서버 컨테이너를 실행한다.
1
| docker run -d -p 80:80 --name webserver nginx
|
이 명령어의 의미:
- -d: 백그라운드 실행
- -p 80:80: 호스트의 80 포트와 컨테이너의 80 포트 연결
- –name webserver: 컨테이너 이름 지정
- nginx: 사용할 이미지 이름
컨테이너 상태 확인#
실행 중인 컨테이너 목록을 확인한다.
컨테이너 로그 확인#
컨테이너의 로그를 확인한다.
컨테이너 접속#
실행 중인 컨테이너에 접속한다.
1
| docker exec -it webserver bash
|
기본 도커 명령어#
이미지 관리#
1
2
3
4
5
6
7
8
| # 이미지 목록 확인
docker images
# 이미지 다운로드
docker pull ubuntu:20.04
# 이미지 삭제
docker rmi nginx
|
컨테이너 관리#
1
2
3
4
5
6
7
8
9
10
11
| # 컨테이너 중지
docker stop webserver
# 컨테이너 시작
docker start webserver
# 컨테이너 재시작
docker restart webserver
# 컨테이너 삭제
docker rm webserver
|
도커 네트워크#
네트워크 생성#
컨테이너 간 통신을 위한 네트워크를 생성한다.
1
| docker network create mynetwork
|
네트워크에 컨테이너 연결#
생성한 네트워크에 컨테이너를 연결한다.
1
| docker run -d --name db --network mynetwork mysql
|
도커 볼륨#
볼륨 생성#
데이터 영구 저장을 위한 볼륨을 생성한다.
1
| docker volume create mydata
|
볼륨 마운트#
컨테이너에 볼륨을 마운트한다.
1
2
3
4
| docker run -d \
--name db \
-v mydata:/var/lib/mysql \
mysql
|
문제 해결#
- 도커 데몬이 시작되지 않는 경우:
1
2
| sudo systemctl status docker
sudo journalctl -u docker
|
- 권한 문제가 발생하는 경우:
1
| sudo chown $USER:$USER /var/run/docker.sock
|
- 디스크 공간 부족:
도커는 컨테이너 기술의 진입점이다. 기본적인 설치와 설정만으로도 컨테이너의 장점을 경험할 수 있다. 이후 도커 컴포즈, 도커 스웜, 쿠버네티스로 발전하면서 더 복잡한 컨테이너 환경을 구축할 수 있다.