Docker 설치 및 실행 방법(in WSL)

nylonmask·2024년 7월 30일

테스트 환경

Ubuntu 22.04 (wsl)

Docker 설치

1. 우분투 시스템 패키지 업데이트

sudo apt-get update

2. 필요한 패키지 설치

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

3. Docker의 공식 GPG키 추가

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

4. Docker의 공식 apt 저장소 추가

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

5. 시스템 패키지 업데이트

sudo apt-get update

6. Docker 설치

sudo apt-get install docker-ce docker-ce-cli containerd.io

7. Docker 버전 확인

docker --version

8. Docker 데몬 직접 실행

wsl처럼 도커 데스크탑을 사용하지 못하는 환경이라면 아래와 같이 도커 데몬을 직접 실행해야한다.

sudo dockerd

혹은 아래와 같은 스크립트(docker_script.sh)를 작성하여 도커 데몬을 백그라운드에서 실행한다.

#!/bin/bash
sudo dockerd &

9. Docker 컨테이너의 현재 상태 확인

(백그라운드로 실행하지 않았다면 새로운 터미널 열어서) 아래 명령어로 확인한다. 모든 컨테이너의 상태를 확인하려면 -a플래그를 붙여주자

sudo docker ps
sudo docker ps -a

[응용] Docker 컨테이너에 Rocky Linux 설치하기

10. Rocky Linux Docker 이미지 다운로드

docker pull rockylinux/rockylinux:latest

11. Rocky Linux 컨테이너 실행

다운로드한 이미지를 사용하여 Rocky Linux 컨테이너 실행

docker run -it rockylinux/rockylinux:latest /bin/bash

12. Dockerfile을 사용한 설치

Dockerfile 생성 (eg. vi dockerfile)

# Dockerfile
FROM rockylinux/rockylinux:latest

# 필요한 패키지 설치 (예: vim)
RUN yum -y install vim

# 컨테이너 시작 시 실행될 명령어
CMD ["/bin/bash"]

13. Docker 이미지 빌드

docker build -t my-rockylinux .

14. 컨테이너 실행

새로 만든 이미지로 컨테이너 실행

docker run -it my-rockylinux

추가 명령어

생성한 컨테이너 실행

컨테이너 id는 docker ps -a 로 확인가능하다.

docker start <container_id>

컨테이너 내부에 진입하고 쉘 세션 시작

docker exec -it <container_id> /bin/bash
  • docker: Docker 클라이언트 명령어를 실행

  • exec: 현재 실행 중인 Docker 컨테이너에서 명령어를 실행하기 위해 사용되는 Docker 명령어. 여기서는 컨테이너 내부에서 /bin/bash 쉘을 실행.

  • it: 두 개의 옵션이 결합된 형태

    • i (interactive): 표준 입력(stdin)을 활성화. 이 옵션을 사용하면 컨테이너 내에서 입력을 받을 수 있음.
    • t (tty): 가상 터미널을 할당. 이 옵션을 사용하면 터미널을 통해 상호작용할 수 있음.

컨테이너로 로컬 파일 복사하는법

도커 컨테이너 내부가 아닌 별도의 터미널에서 해야함을 주의하자.

docker cp /path/to/local/file <container_id>:/path/to/container/directory

컨테이너 삭제

docker rm <container_id>

재부팅후, wsl환경에서 특정 도커 컨테이너에 다시 접속하고 싶으면?

  1. sudo dockerd로 도커 데몬 실행
  2. 별도의 터미널에서 sudo docker ps -a 로 접속하고 싶은 컨테이너 id 확인
  3. sudo docker exec -it <container_id> /bin/bash로 컨테이너 진입 후 세션 시작
profile
AI engineer / Rust developer

0개의 댓글