본문 바로가기

IT

리눅스에서 도커(Docker) 활용하기 1(설치, 기본 명령어)

728x90

CentOS9에서 도커를 설치해보려 한다. 

https://sh970901.tistory.com/40?category=958061 을 참고하여 기본 셋팅을 하고  호스트 전용 어댑터를 추가한다.

 

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

 

Install Docker Engine on CentOS

 

docs.docker.com

  • 도커 공식 문서를 보며 순서대로 설치를 진행한다.
  • sudo yum install -y yum-utils
  • sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
  • sudo systemctl start docker
  • sudo systemctl enable docker

정상적으로 설치가 잘 되었는지 docker run hello-world를 찍어 확인해보자. 지금 hello-world라는 이미지가 없기 때문에 알아서 가져와서 실행한다.

도커 설치

hello-world라는 것이 정상적으로 추가 되었다.

hello-world 이미지 추가

계속 명령문을 실행할 때 마다 sudo를 붙이는 것이 번거롭다. =>

sudo usermod -aG docker ${USER} 추가하면 sudo를 붙이지 않아도 된다.

 

프로세스(동적인 로직, 메모리)는 실행중인 프로그램(정적인 로직, 디스크)

프로그램 => 도커 이미지

프로세스 => 컨테이너 (컨테이너는 이미지의 실행)

 

docker pull 이미지명

- 도커 이미지 다운로드

 

docker run hello-world => hello-world라는 이미지를 실행한다.

- 일단 현재 내 PC에 hello-world가 설치되어있는지 체크

- 없으면 도커허브에서 다운받아서 실행

 

docker images => 현재 설치되어있는 이미지를 보여준다.

- 도커 이미지 = 리포지토리 + 버전 

- 사이즈가 작고 각 이미지의 ID값을 가진다.

 

docker rmi hello-world => hello-world 라는 이미지를 삭제함 

- 실행 중이면 삭제가 안 될 수도 있음 

- 강제 삭제 -f 옵션을 추가 (--force)

 

docker stop [컨테이너 이름] => 컨테이너 중지

 

docker ps => 실행중인 도커 컨테이너를 조회

- 종료된 컨테이너도 표시하고 싶으면 -a 옵션을 추가

docker ps

docker logs [컨테이너 ID or ID 앞에 일부만 or NAMES] => 이 프로세스가 실행 될 당시에 내부적으로 쌓여있는 로그들을 보여줌

- docker logs 6f1c1cac1f7c 

- docker logs 6f1

- docker logs focused_ride

- 셋 모두 같은 결과

- docker inspect [컨테이너 ID] => 더 자세한 로그를 보여줌

 

docker rm -f [컨테이너 ID] => 도커 컨테이너 단건 삭제

- 실행 중인 경우 중지 후 삭제

- 이미 종료된 경우 기록만 삭제

 

docker network prune -f  => 안쓰는 네트워크 삭제

 

docker volume prune -f => 안쓰는 볼륨 삭제

(* 컨테이너 안쪽의 특정 폴더를 HOST OS의 폴더와 매핑시켜서, 해당 폴더의 내용을 영속적이고 안전하게 보관하는 기술을 볼륨이라고 함)

 

sudo rm -rf /docker/projects =>도커 프로젝트 삭제

 

도커를 최초 상태로 회귀하기 매우 편리함 

=> 컨테이너 삭제, 이미지 삭제, 네트워크 삭제, 볼륨 삭제, 도커프로젝트 삭제

=>

# 컨테이너 삭제
docker rm -f $(docker ps -qa)

# 이미지 삭제
docker rmi -f $(docker images -qa)

# 안쓰는 네트워크 삭제
docker network prune -f

# 안쓰는 볼륨 삭제
docker volume prune -f