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
- httpd 이미지 실행
docker pull httpd
docker images
docker image history httpd
docker run --name apache -p 8080:80 httpd
docker container start apache
- 컨테이너 접속 후 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/
- 커밋 & Push
docker commit apache starandi/apache2hong
docker images
docker login
docker push starandi/apache2hong
- 다른 사용자 이미지 Pull & 실행
docker pull hwanny0228/apache1kang
docker run --name apachehwan -p 8081:80 hwanny0228/apache1kang
브라우저 확인: http://localhost:8081/
7. Nginx 컨테이너 + Dockerfile 실습
- 작업 디렉토리 생성
cd ~
mkdir nginx
- 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>
- Dockerfile 작성
FROM nginx
COPY . /usr/share/nginx/html
- 빌드 & 실행
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"]