기존 WSL + Docker-Desktop 구성에 이슈가 있어 리눅스 VM에 Docker를 구성함.
- WSL 과 Docker-Desktop 연동이 한번씩 끊어짐
- Docker-Desktop은 실행이 되어 있는데 WSL에서 명령어 실행이 안 됨
- Docker-Desktop 실행 시 행이 걸려 무응답 현상이 종종 발생 됨.
그 외에도 docker 컨테이너에 저장 된 데이터를 이전하기 위해 스토리지 정보를 확인 했으나
컨테이너에 설정 된 위치와 Docker-Desktop에 실제 저장 된 위치 정보가 달라 데이터 이전 실패
- 구글링에 나온 여러 위치를 찾아봤으나 실제 데이터가 저장 된 위치를 찾지 못함.
- 리눅스 vm에 구성 된 docker에서는 설정 된 위치에 데이터가 저장 된 것을 확인.
# docker inspect 1d58b9f91a6d | grep -A 10 Mounts
"Mounts": [
{
"Type": "volume",
"Name": "grafana-storage",
"Source": "/var/lib/docker/volumes/grafana-storage/_data",
"Destination": "/var/lib/grafana",
"Driver": "local",
"Mode": "z",
"RW": true,
"Propagation": ""
}
설치 환경
- Ubuntu 22.04.5 LTS
- Docker version 27.5.0, build a187fa5
- Docker Compose version v2.32.4
도커(Docker) 설치
1. 시스템 업데이트
# apt update
# apt upgrade
2. 의존성 패키지 설치
# apt install -y apt-transport-https ca-certificates curl software-properties-common
3. 도커 GPG키 추가
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
4. 도커 레포지토리 설정
# echo "deb [arch=$(dpkg --print-architecture) 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
5. 도커 설치
apt update
apt install -y docker-ce docker-ce-cli containerd.io
6. 도커 시작 및 활성화
# systemctl start docker
# systemctl enable docker
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable docker
# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2025-01-16 07:11:42 UTC; 28s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 2834 (dockerd)
Tasks: 14
Memory: 32.3M
CPU: 476ms
CGroup: /system.slice/docker.service
└─2834 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Jan 16 07:11:41 docker1 dockerd[2834]: time="2025-01-16T07:11:41.892867362Z" level=info msg="OTEL tracing is not configured, using no>
Jan 16 07:11:41 docker1 dockerd[2834]: time="2025-01-16T07:11:41.893117364Z" level=info msg="detected 127.0.0.53 nameserver, assuming>
Jan 16 07:11:42 docker1 dockerd[2834]: time="2025-01-16T07:11:42.040744476Z" level=info msg="Loading containers: start."
Jan 16 07:11:42 docker1 dockerd[2834]: time="2025-01-16T07:11:42.416449311Z" level=info msg="failed to read ipv6 net.ipv6.conf.<bridg>
Jan 16 07:11:42 docker1 dockerd[2834]: time="2025-01-16T07:11:42.416528311Z" level=info msg="failed to read ipv6 net.ipv6.conf.<bridg>
Jan 16 07:11:42 docker1 dockerd[2834]: time="2025-01-16T07:11:42.683052222Z" level=info msg="Loading containers: done."
Jan 16 07:11:42 docker1 dockerd[2834]: time="2025-01-16T07:11:42.709459722Z" level=info msg="Docker daemon" commit=38b84dc containerd>
Jan 16 07:11:42 docker1 dockerd[2834]: time="2025-01-16T07:11:42.709633323Z" level=info msg="Daemon has completed initialization"
Jan 16 07:11:42 docker1 dockerd[2834]: time="2025-01-16T07:11:42.783679181Z" level=info msg="API listen on /run/docker.sock"
Jan 16 07:11:42 docker1 systemd[1]: Started Docker Application Container Engine.
7. 설치 확인
# docker --version
Docker version 27.5.0, build a187fa5
도커(Docker) 사용자 추가
1. 도커 사용자 계정 생성(dockeruser)
# adduser dockeruser
2. docker 그룹에 신규 생성한 사용자 추가
- sudo 권한 없이 docker 명령어 사용
- 사용자 권한 추가 후 다시 로그인해야 변경 사항이 적용 됨
# usermod -aG docker dockeruser
3. 권한 확인
$ docker --version
Docker version 27.5.0, build a187fa5
도커 컴포즈(Docker-Compose) 설치
컨테이너 수량이 증가하면 언제가 사용하게 될것 같아 미리 설치
1. 다운로드 및 설치
# curl -L "https://github.com/docker/compose/releases/download/v2.32.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2. 실행 권한 부여
# chmod +x /usr/local/bin/docker-compose
3. 설치 확인
# docker-compose --version
Docker Compose version v2.32.4