Post

Docker 컨테이너 관리를 위한 CLI 정리

Docker 컨테이너 실행, 빌드, 모니터링, 로그, exec 등 자주 쓰는 CLI 명령어 정리와 실습 예제

Docker 컨테이너 관리를 위한 CLI 정리

Docker 컨테이너 관리를 위한 CLI 정리


Docker 명령어 및 실습 가이드

기본 명령어: docker run [options] image [command]

옵션설명
-i, --interactive대화식 모드 (쉘 입력 가능)
-tTTY 할당 (터미널 연결용)
-d, --detach백그라운드 실행
--name컨테이너 이름 지정
--rm종료 시 자동 제거
--restart재시작 정책 지정
-e, --env환경 변수 설정
--env-file다중 env 변수 파일 지정
-v, --volume볼륨 마운트 (호스트:컨테이너)
-h호스트명 지정
-p포트 매핑 (호스트:컨테이너)
-P자동 포트 매핑
-w, --workdir컨테이너 작업 디렉토리 설정

실습 환경

  • 환경: UTM 기반 VM (Rocky Linux)
  • 도구: Docker, Node.js


JS 파일 및 Dockerfile 생성

1
2
3
4
5
6
7
8
9
10
11
12
cat > runapp.js <<EOF
const http = require('http');
const server = http.createServer().listen(6060);
server.on('request', (req, res) => {
  console.log('Your request arrived.');
  res.write("HostName: " + process.env.HOSTNAME + "\n");
  res.end();
});
server.on('connection', (socket) => {
  console.log("Your Connected.");
});
EOF
1
2
3
4
5
6
7
FROM node:20-alpine3.17
RUN apk add --no-cache tini curl
WORKDIR /app
COPY runapp.js .
EXPOSE 6060
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["node", "runapp.js"]

Docker 이미지 빌드

1
2
docker build -t noderun:1.0 .
docker images | grep noderun

Docker 컨테이너 실행

1
2
3
docker run -d --name=node-run -p 6060:6060 noderun:1.0
docker ps
curl localhost:6060

컨테이너 정보 확인 (top, port, stats)

1
2
3
docker top node-run
docker port node-run
docker stats node-run

컨테이너 로그 확인

1
docker logs -f node-run

컨테이너 수정 및 재시작

1
2
docker cp runapp.js node-run:/app/runapp.js
docker restart node-run

컨테이너 내부 접속

1
docker exec -it mynginx /bin/sh

이미지 및 컨테이너 정리

1
2
3
4
docker stop [container]
docker rm [container]
docker images
docker image rm [image]

💡 불필요한 이미지나 컨테이너는 주기적으로 정리하여 시스템 리소스 확보!!.

This post is licensed under CC BY 4.0 by the author.