[Docker] 2. 설치

happy_quokka·2023년 12월 11일
0

Docker

목록 보기
2/7

docker 설치

https://docs.docker.com/engine/install/ubuntu/

  • 처음에 su -를 통해 root 계정으로 들어가서 하는 것이 편하다 (#)

1. old version 확인

# apt list docker{,-engine,.io} containerd runc

  • old version인 docker, docker -engine, docker.io, containerd, runc가 설치되어 있는지 확인
  • 혹시 old version이 [installed]되어 있다면 apt remove ...로 제거
  • 나의 경우에는 설치가 안되어있다

2. 필요 패키지 설치

# apt update
# apt -y install apt-transport-https ca-certificates curl gnupg lsb-release

3. key file 추가

  • 아래의 명령이 실행되면 /usr/share/keyrings/docker-archive-keyring.gpg에 key파일이 생성된다 (https에 필요한 파일)
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

4. APT 저장소 source.list 추가

  • 성공하면 /etc/apt/source.list.d에 docker.list가 생성
# 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" > /etc/apt/sources.list.d/docker.list

  • arch=amd64
    • intel 호환 x86 64bit 사용, armhf나 arm64를 사용하는 경우에는 이 부분 변경
    • dpkg --print-architecture 이렇게 하면 현재 사용하는 것 반환
  • signed-by=...
    • 앞에서 저장한 key 파일의 위치
  • . /etc/os-release
    • system의 codename이 나온다 -> bionic (18.04)
    • 또는 lsb_release -cs로 해도 된다

5. docker engine 설치

# apt update
# apt -y install docker-ce docker-ce-cli containerd.io

6. docker daemon 실행 확인

  • 보통은 설치 후 daemon이 자동으로 실행된다
# systemctl status docker

  • active (running) 상태이면 정상상태
  • enabled : 재부팅할 때 자동으로 올라온다

docker : hello-world

1. image 다운받기

# docker run hello-world

  • docker가 어떤 식으로 실행되었는지 설명해준다
  1. docker client가 daemon으로 접속
  2. docker daemon이 "hello-world" image를 가져왔다. 버전은 amd64
  3. docker daemon이 image를 가지고 새로운 container를 만들었다
  4. docker client가 실행이 된것에 대해 terminal로 보낸다
  • $ docker run -it ubuntu bash
    • 여기에서 bash는 host OS에 있는 것이 아니라 docker에 있는 bash이다

2. ubuntu bash 실행

# docker run -it ubuntu bash
  • -i : interative mode
  • -t : terminal
  • 그 결과 docker안의 root계정으로 들어온 상태가 된다 (root@99ac28b344e9)
  • 여기의 파일은 host OS의 /root가 아니라 docker 내부의 파일 시스템이다

3. docker 종료

# exit

4. 실행 docker 확인

# docker ps -a

0개의 댓글