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=...
. /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가 어떤 식으로 실행되었는지 설명해준다
- docker client가 daemon으로 접속
- docker daemon이 "hello-world" image를 가져왔다. 버전은 amd64
- docker daemon이 image를 가지고 새로운 container를 만들었다
- 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