Taeyoung Kim

Cloud & Platform

Docker 이미지 & 컨테이너 실습

Docker 이미지 & 컨테이너 실습 학습 내용을 정리한 백필 노트입니다.

이 글은 2025년 학습 기록을 블로그 형식으로 정리한 백필 노트입니다.


1. 가동 중 컨테이너에 명령 실행 (docker exec)

  • OS 확인 (Debian)
docker container exec psdb head -n 4 /etc/os-release
  • Debian 컨테이너 내 bash 실행
docker container exec -it psdb bash
head -n 4 /etc/os-release

종료: Ctrl + C


2. Docker 이미지 이름 구조

  • 전체 형태:
[Host[:Port_Number]/[Namespace/]REPOSITORY[:Tag]]
  • 구성 요소:
    • Host → Registry 서비스의 Host 명
    • Port_Number → Registry 포트 번호
    • Namespace → 조직 또는 사용자 이름
    • Repository → 필수 요소, 보통 이미지 이름
    • Tag → 이미지 버전 구분

3. 이미지 취득 (Pull)

docker image pull ubuntu:20.04
docker image pull ubuntu:22.04
docker image pull ubuntu:24.04
docker image pull ubuntu:latest
  • Ubuntu 이미지 목록 확인
docker image ls ubuntu
docker image ls u*

4. 이미지 상세 내용 확인

docker image pull ruby:3.2.2
docker image inspect ruby:3.2.2
docker image history ruby:3.2.2
  • 환경 변수 확인
docker container run --rm ruby:3.2.2 printenv RUBY_VERSION
docker container run --rm ruby:3.2.2 printenv GEM_HOME

5. 이미지 명령어 확인

docker image --help
docker image -h
  • 커밋 예시
docker commit apache [namespace]/[repository]
docker commit apache starandi/apache2hong

6. Docker Push & Pull

  1. httpd 이미지 실행
docker pull httpd
docker images
docker image history httpd
docker run --name apache -p 8080:80 httpd
docker container start apache
  1. 컨테이너 접속 후 index.html 수정
docker exec -it apache /bin/bash
cd htdocs
ls
cat index.html
cat > index.html
  • HTML 수정 내용
<html>
    <head>
        <title>Hi Hong</title>
    </head>
    <body>
        <h1>
            <center>
                <font color='red'> Hello Hong 2025 </font><br>
                <font color='blue'> starandi/apache2hong </font>
            </center>
        </h1>
    </body>
</html>

종료: Ctrl + C

브라우저 확인: http://localhost:8080/

  1. 커밋 & Push
docker commit apache starandi/apache2hong
docker images
docker login
docker push starandi/apache2hong
  1. 다른 사용자 이미지 Pull & 실행
docker pull hwanny0228/apache1kang
docker run --name apachehwan -p 8081:80 hwanny0228/apache1kang

브라우저 확인: http://localhost:8081/


7. Nginx 컨테이너 + Dockerfile 실습

  1. 작업 디렉토리 생성
cd ~
mkdir nginx
  1. index.html 작성
<html>
<head>
    <title>Hi Docker</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
    <h1> Dockerfile을 이용 Nginx 컨테이너 실행 </h1>
</body>
</html>
  1. Dockerfile 작성
FROM nginx
COPY . /usr/share/nginx/html
  1. 빌드 & 실행
docker build -t nginx:testhong .
docker run -d -p 8080:80 nginx:testhong

8. Node.js 예시 Dockerfile

FROM node
WORKDIR /app
COPY packakge.json .
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]