| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- docker
- SQL
- 어댑터패턴
- 매직메서드
- Laravel
- 데이터베이스
- 라라벨
- MySQL
- 데코레이터패턴
- Agent Loop
- dhgrp
- mcp client
- PHP객체지향
- 인덱스
- ai 에이전트
- 객체복제
- 객체지향
- SQL문법
- PHP
- MCP
- ai agent
- OOP
- 소프트웨어설계
- docker network
- LLM
- 디자인패턴
- linux 권한
- Tool Calling
- mcp server
- SQL기초
- Today
- Total
개발블로그
Windows + WSL 2에서 Docker 설치 및 설정하기 (Docker Desktop 설치 안함) 본문
Windows에서 Docker을 실행할 환경
Windows
└─ WSL 2
└─ Linux Distribution
│
├─ Docker Engine
├─ Docker CLI
├─ containerd
├─ Docker Compose
│
└─ Container
여기서 설치할 환경은 Windows 자체에 Docker Engine을 설치하는 것이 아니라,
WSL 2에서 실행되는 Linux Distribution을 하나의 Linux 환경으로 사용하고 그 내부에서 Docker Engine을 실행
(Docker Desktop을 설치하지 않는 이유는 Docker의 설치 및 Service 관리 구조를 일반적인 Linux환경과 비슷하게 가져가기 위해)
※ Docker Desktop과 WSL 내부 Docker Engine을 동시에 사용하지 않도록 하기.
=> Docker Engine이 두 개가 존재할 수 있어 충돌 가능성 있음.
기존 Docker 환경 확인 및 정리
Docker Engine을 새로 설치하기 전에 기존에 Docker 관련 Package나 Service가 설치되어 있는지 확인
# Docker CLI 설치 여부 확인
docker --version
# 설치되어 있다면 Version 정보가 출력됨, 설치되어 있지 않다면 command not found 메세지
# Docker 관련 Package 확인
dpkg -l | grep -E 'docker|containerd|runc'
# Docker Service 확인 (Docker Engine이 현재 실행 중인지 확인)
systemctl status docker
# 실행중일 때 : Active: active (running)
## 기존 Docker 데이터 확인 : 기존 Docker 환경 정리시에는 바로 Package 제거하지 않고 먼저 Container, Image, Volumn에 필요한 데이터가 남아 있는지 확인
# Container 확인
docker ps -a
# Image 확인
docker images
# Volumne 확인
docker volumn ls
## 충돌 가능한 Package 정리
# ex) docker.io, docker-compose, docker-doc, podman-docker, containerd, runc
# 삭제 예시 (실제로 설치되어 있는 package 먼저 확인)
# ※Docker Package 제거 ≠ Docker Data 삭제
sudo apt remove docker.io docker-compose docker-doc podman-docker containerd runc
Docker 공식 Repository 등록
Docker Engine Package를 Docker 공식 Repository에서 설치할 수 있도록 APT Repository를 등록
필수 Package 설치
↓
Docker 공식 GPG Key 등록
↓
Docker APT Repository 등록
↓
Package Index 갱신
필수 Package 설치
먼저 Package 목록을 갱신하고 Repository 등록에 필요한 Package를 설치
sudo apt update
sudo apt install -y ca-certificates curl
Docker 공식 GPG Key 등록
APT가 Docker Repository에서 내려받은 Package가 신뢰할 수 있는 출처에서 제공된 것인지 확인할 수 있도록 Docker의 공식 Signing Key를 등록
# Key를 저장할 Directory 생성
sudo install -m 0755 -d /etc/apt/keyrings
# Docker 공식 GPG Key를 저장 (사용하는 Linux Distribution 계열에 따라 URL 달라짐)
# Ubuntu 계열
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
# Debian 계열
sudo curl -fsSL https://download.docker.com/linux/debian/gpg \
-o /etc/apt/keyrings/docker.asc
# APT가 Key를 읽을 수 있도록 권한 설정
sudo chmod a+r /etc/apt/keyrings/docker.asc
Docker APT Repository 등록
Docker Package를 조회할 Repository를 APT Source에 등록
=> Docker Engine 패키지를 Docker 공식 저장소에서 설치하기 위해
( 우분투와 데비안 계열에서 Repository 주소가 다르기 때문에 자신의 Linux Distribution에 맞는 설정을 사용)
# Ubuntu 계열
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
# Debian 계열
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
각 설정값 의미]
| 설정 | 의미 |
| URIs | Docker Package를 가져올 Repository |
| Suites | 현재 Linux Distribution의 Release Codename |
| Components | stable Release Channel 사용 |
| Architectures | 현재 시스템 Architecture |
| Signed-By | Repository Package 서명 검증에 사용할 Key |
Package 목록 갱신
Repository 등록이 끝났다면 다시 Package Index를 갱신
sudo apt update
이제 APT가 Docker 공식 Repository의 Package도 조회 가능
# Docker CE Package가 조회되는지 확인
apt-cache policy docker-ce
Docker Engine 설치
실제로 Docker Engine과 필요한 구성 요소 설치
설치할 Package ]
| Package | 역할 |
| docker-ce | Docker Engine |
| docker-ce-cli | docker Command를 제공하는 CLI |
| containerd.io | Container Runtime |
| docker-buildx-plugin | BuildKit 기반 확장 Build 기능 |
| docker-compose-plugin | Docker Compose V2 |
## 설치
sudo apt install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
## 설치 여부 확인
dpkg -l | grep -E 'docker-ce|docker-ce-cli|containerd.io|docker-buildx-plugin|docker-compose-plugin'
# 정상적으로 설치되어 있다면 각 Package가 ii 상태로 표시됨
Docker Service 및 사용자 권한 설정
## Docker Service 상태 확인
sudo systemctl status docker
# 정상 실행 중 : Active: active (running)
# 시작
sudo systemctl start docker
# 현재 Session뿐 아니라 이후에도 Service가 자동으로 시작되도록 설정
sudo systemctl enable docker
# 실행과 자동 시작 설정을 한 번에 적용
sudo systemctl enable --now docker
## sudo 없이 Docker Command 사용
# 현재 사용자를 docker Group에 추가
sudo usermod -aG docker $USER
# 사용자가 Group에 추가되었는지 확인
groups
# 확인 : 출력에 다음과 같이 docker가 포함되어있는지 확인 => user sudo docker
# 다만, Group 변경 사항은 현재 Login Session에 바로 적용되지 않을 수 있음
Docker 설치 및 Container 실행 확인
# Docker CLI Version 확인
docker --version
# 정상적으로 설치되어 있다면 Version 정보 출력 됨 : Docker version 29.x.x, build ...
# Docker CLI가 Docker Engine에 정상적으로 연결되는지 확인
docker info
# Client와 Server 정보를 함께 보여줌
# 확인할 내용 => Servier 정보가 정상적으로 출력되면 -> Docker CLI가 Docker Engine에 연결된 상태
# 설치 여부 확인 : Docker에서 제공하는 hello-world Image 실행
docker run hello-world
# 정상 실행시 메세지 : Hello from Docker!
#생성된 Container 확인
docker ps -a
# hello-world의 STATUS Exited로 보임 (오류 없이 정상적으로 종료)
# Image 확인
docker images
Docker Compose 확인
Docker Engine 설치 과정에서 docker-compose-plugin도 함께 설치했다면 Docker Compose를 별도로 설치할 필요는 없음
설치 여부 확인
docker compose version
정상적으로 설치되었다면 Vesion 정보가 출력됨
Docker Compose version v2.x.x
compose.yaml이 있는 Directory에 다음 명령을 실행하면, Compose설정에 정의된 여러 Container를 한 번에 생성하고 실행 가능
docker compose up -d
'STUDY > Docker' 카테고리의 다른 글
| Docker 명령어 모음 (0) | 2026.08.26 |
|---|---|
| Dockerfile (0) | 2026.08.26 |
| Docker (0) | 2026.08.26 |
| Docker Volumn과 데이터 영속성 (0) | 2026.08.26 |
| Docker Container의 Port와 Network 통신 구조 (0) | 2026.08.26 |