Docker

[Docker] 기본 명령어 및 내용 정리

Accept 2025. 7. 7. 00:01

docker 장점

sanpshot

resource control

can run anywhere(with docker)

zero setup

lightwight

pm2 for any language

 

docker 중요 파일 두가지

Dockerfile -> docker image -> run

예를 들자면.. package.json = Dockerfile / docker image = build file 느낌

 

docker daemon

docker info : 도커 상태와 정보 확인

open -a Docker : 도커 실행

 

docker redis

docker run redis

docker run -it redis

docker run -it -p 4000:6379 redis

redis-cli -p 4000

 

docker list

docker ps : 실행 중인 도커 프로세스 목록

docker ps --all : 모든 도커 컨테이너 목록 확인

docker system prune : 중지/종료된 컨테이너들 제거

 

docker 컨테이너 터미널 접속

docker exec -it [프로세스명(docker ps - NAME)] bash

docker exec -it [프로세스명(docker ps - NAME] sh

docker exec -it [컨테이너 ID] sh

 

예 :

redis docker image 실행 후 redis-cli

SET foo bar

get foo

"bar"

 

commands

docker run [image name] : docker create [image name], docker start [image name] 실행되며, 프로세스만 실행

docker run -it [image name] : docker run [image name] 실행 후 해당 터미널 접속

docker run -d [container id] : 특정 컨테이너를 백그라운드에서 실행(detached), docker ps로 상태 확인

 

stop

docker stop [docker id] : 중지 명령을 보내고 10초(기본값) 이후 sigkill 보냄

docker kill [docker id] : sigkill 바로 보내고 강제 종료

 

log

docker logs [container id] : 특정 컨테이너의 stdlog 확인

 

dockerfile 커맨드

FROM 어떤 베이스 이미지를 기반으로 할지 지정. Dockerfile의 시작점.예: FROM ubuntu:22.04, FROM node:18
WORKDIR 이후 명령어들이 실행될 작업 디렉토리 설정.없으면 기본은 / (루트). cd처럼 동작.예: WORKDIR /app
COPY 호스트의 파일 또는 디렉토리를 이미지 내부로 복사.형식: COPY [소스 경로] [대상 경로]예: COPY . /app
RUN 셸 명령어를 실행 (이미지 빌드 시 단 한 번만).보통 패키지 설치, 디렉토리 생성 등에 사용.예: RUN apt update && apt install -y git
CMD 컨테이너가 실행될 때 실행할 기본 명령어 지정.예: CMD ["node", "index.js"] 또는 CMD redis-serverdocker run에서 명령어를 덮어쓸 수 있음

 

docker image 생성

1. Dockerfile 생성

-> FROM alpine

-> WORKDIR /usr/src/my-app : 향후 RUN, COPY 등 명령어의 기본 작업 디렉토리 설정

-> COPY . . (임의, 루트 경로의 모든 파일을 컨테이너로 복사)

-> RUN apk add --update redis

-> CMD ["redis-server"]

2. Dockerfile과 동일 경로에서 docker build . 또는 docker build. -t sihoon/redis:latest로 이름/태그 지정 가능

3. docker images : 도커 이미지 목록 확인

 

docker image 생성 흐름

1. Dockerfile 설정

2. Docker Hub에서 관련 Image 가져오기

3. 2번을 기준으로 로컬 서버에 Base Container 생성 + Dockerfile 내 RUN 실행 후 스냅샷

4. 3번 Temp Image 생성 후 스냅샷

5. 이미지 생성 완료

* 3, 4번 구간에서는 스냅샷을 하면서 캐싱이 되기에 FROM, RUN 부분에서 변경사항이 없고 CMD만 변경이 있을 경우 docker build가 빠르게 진행될 수 있음

 

예시)

-> docker build -t [태그명] -f [실행할 도커 파일명] .

-> docker run -it -p 4000:4000 --env-file .env express-dev -v $(pwd)/app:/usr/src/my-app/app express-dev

 

.dockerignore를 통해 도커 빌드 시 특정 파일 제외 가능

 

docker build 후 실행 시 특정 프로퍼티 파일 호출

docker run -it --env-file .env [이미지명]

 

docker-compose.yml(개발 용도, 운영 환경에서는 비추천)

docker-compose up : 도커 한번에 실행 가능

docker-compose up -d : 도커 백그라운드 실행

'Docker' 카테고리의 다른 글

[Docker] ECS 운영 환경 구축  (0) 2025.07.10
[Docker] ECS Fargate 테스트 - Nginx 이미지 빠른 배포  (0) 2025.07.10