Docker명령어
저번 내용에 이어서 진행하도록 하겠습니다. 저번에는 Ubuntu 이미지를 다운로드한 후 컨테이너를 띄우는 작업까지 완료가 되었습니다. 다음으로는 container를 확인해보겠습니다.
container 확인
이제 현재 실행중인 컨테이너를 확인해보겠습니다.
docker ps
실행 중인 Ubuntu 컨테이너 목록에는 컨테이너 ID와 이미지 이름 등이 표시됩니다.
앞에서 -d를 안 쓰면 컨테이너의 터미널로 커서가 이동한다고 하였는데, -d로 백그라운드 실행한 컨테이너에는 다음 명령어로 접속할 수 있습니다.(bash셸로 접속)
docker exec -it ubuntu bash
Docker로 Ubuntu 22.04 컨테이너에 접속하면 프롬프트가 root@<컨테이너ID>:/# 형태로 표시되며, root 사용자 셸에 진입한 상태를 의미합니다.
컨테이너는 기본적으로 root 계정으로 실행되며, 일반 사용자는 따로 없습니다.
컨테이너 내부에서 pwd, ls 같은 리눅스 명령어 실습이 가능하며, 기본 위치는 "루트 디렉토리(/)"입니다.
리눅스 셸과 하드웨어
현재 컨테이너에서 사용하는 셸은 bash로, 리눅스에서 가장 널리 쓰이는 명령어 해석기(Interpreter)입니다.
셸은 운영체제와 사용자 간의 인터페이스 역할을 하며, 리눅스 명령어를 실행하고 결과를 보여줍니다.
시스템 정보 확인
프롬프트에서 커서가 깜빡이고 있으니 몇 가지 시스템 정보를 확인해 보겠습니다.
uname -a
해당 명령은 시스템의 커널 버전, 호스트 이름, CPU 아키텍처 등 전체적인 정보를 출력해 줍니다.
이 출력은 WSL2 환경에서 실행 중인 x86_64 기반 Docker 컨테이너의 시스템 정보입니다. microsoft-standard-WSL2는 WSL2용으로 커스터마이즈된 커널임을 의미합니다.
uname -a 명령으로는 리눅스 커널 버전, 컴파일 정보, CPU 아키텍처를 확인할 수 있습니다. 우리가 사용하는 Ubuntu는 다양한 리눅스 배포판 중 하나입니다.
배포판 확인
배포판 정보는 /etc/os-release 파일이나 lsb_release -a 명령으로 확인할 수 있습니다.
cat /etc/os-release
현재 사용 중인 리눅스는 Ubuntu 22.04.5 LTS (Jammy Jellyfish)입니다.
LTS(Long Term Support)는 2년마다 출시되며, 5년간 업데이트가 제공되는 장기 지원 버전입니다.
리눅스는 오픈소스 커널을 기반으로 다양한 배포판이 존재하며, Ubuntu는 Debian 계열, CentOS는 RedHat 계열입니다.
기본적인 리눅스 명령어와 개념은 배포판 간 큰 차이가 없습니다.
하드웨어 확인
이쯤에서 하드웨어 정보를 조금 더 보겠습니다. lscpu 명령은 CPU의 상세 정보를 출력해줍니다.
lscpu
...
위처럼 CPU 아키텍처(Architecture), 코어 수(CPU(s)), 모델명 등이 나옵니다. (aarch64는 ARM 64-bit, x86_64는 인텔/AMD 64-bit를 의미) 만약 PC에서 실행 중이라면 Architecture 항목이 x86_64로 보일 것입니다.
메모리 & 디스크 용량 확인
메모리
free -h
시스템 메모리(RAM) 사용 현황을 인간에게 읽기 좋은 단위(-h 옵션)로 보여줍니다.
디스크
df -h
파일시스템의 디스크 용량 사용 현황을 보여줍니다.
위 출력 예시에서 메모리는 15GiB 중 665MiB 사용중, 13GiB 남음 정도로 볼 수 있고, 디스크(/ 루트 파일시스템)는 1007G 중 3.4G 사용(84% 사용)으로 나타나 있습니다. 여러분의 환경에 따라 수치는 다르게 나올 것입니다.
top와 htop로 프로세스 모니터링
리눅스에서 실행 중인 프로세스와 CPU/메모리 사용량을 실시간으로 확인할 수 있는 도구로 top과 htop이 있습니다.
top: 대부분의 리눅스에 기본 내장된 텍스트 기반 프로세스 모니터링 도구
htop: top의 개선판으로, 색상과 UI가 향상되어 더 보기 쉽고 사용이 편리함 (별도 설치 필요)
top
top
top을 실행해 보겠습니다. 명령을 치고 나면 터미널 화면이 갱신되면서 CPU 사용률, 메모리 사용량, 상위 프로세스 목록 등이 초단위로 업데이트될 것입니다.
top 명령어 실행 시, 상단에는 시스템 요약 정보(업타임, load average, 프로세스 수, CPU/메모리/스왑 사용량 등)가 표시되고, 하단에는 실시간 프로세스 목록이 나타납니다. 상위 프로세스로는 보통 top 자체와 현재 셸(bash)이 보이며, 백그라운드 프로세스나 데몬도 함께 표시될 수 있습니다.
top은 인터랙티브 모드로 실행되며, 실행 중에는 프롬프트가 사라지고 실시간 화면이 유지됩니다. q 키를 누르면 종료하고 원래 프롬프트로 돌아올 수 있습니다.
htop
htop은 top보다 더 편리한 인터페이스를 제공하지만 기본 설치되어 있지 않을 수 있습니다.
htop
만약 htop 명령이 없다고 나오면, 다음과 같이 설치해볼 수 있습니다.
apt update
apt install -y htop
htop
Ubuntu에서는 apt라는 패키지 관리자를 사용해 소프트웨어를 설치합니다. (뒤에서 apt에 대해 자세히 다룹니다.) 위 명령으로 htop을 설치한 후, htop을 실행해 보면 실행 화면은 top과 유사하지만 그래픽막대로 CPU 코어 사용량을 보여주고, F키나 방향키로 프로세스를 선택하거나 정렬을 바꾸는 등 조작이 좀 더 쉽습니다.
메모리, CPU, 스왑 등이 컬러 막대그래프로 표시되기 때문에 한눈에 시스템 상태를 파악하기 좋습니다. (htop 역시 q로 종료 가능합니다.)
리눅스에는 top & htop처럼 기본 도구를 개선한 대안 툴들이 많이 존재합니다.
sh(본 셸) → 개선된 셸인 bash
vi(기본 에디터) → 향상된 에디터 vim
이러한 도구들은 기능 확장과 UI 개선을 통해 사용 편의성을 높인 커뮤니티 기반 툴이며, 필요에 따라 설치해서 사용할 수 있습니다.
다음에 다룰 사항
이번에 다룬 내용으로는 docker와 리눅스 명령어 실습을 다뤄봤습니다. 다음으로는 리눅스 프로그램 설치 관리(APT 패키지 매니저)에 대해 다뤄보도록 하겠습니다. 감사합니다.
'웹 개발' 카테고리의 다른 글
docker와 리눅스 명령어 실습1 (0) | 2025.06.22 |
---|---|
WSL과 우분투 설치 및 기본 명령어 (2) | 2025.06.08 |
웹 브라우저와 웹 서버의 상호작용 2 (0) | 2025.05.25 |
웹 브라우저와 웹 서버의 상호작용 1 (0) | 2025.05.18 |
웹 개발, 어디서부터 어떻게? (4) | 2025.05.11 |