DevOps/🐳 Docker & Kubernetes

Docker | 초간단 도커 사용법

2024. 9. 25. 17:58
목차
  1. 도커 사용법
  2. 도커 완전 기초
  3. 이미지 생성
  4. Docker Compose 설정 

도커 사용법

 

도커 완전 기초

이미지

도커허브라는 도커 공식 마켓이 있다고 가정하자. 참고로 도커허브를 도커 레지스트리 라고도 부른다.

아무튼 이 도커허브라는 마켓에서는 우분투, nginx, postgresSQL 등 과 같은 이미지라는 레시피를 판매하고있다.

이 레시피들은 검증된 개발자(IBM, MS, Oracle)에 의해서 만들어진 레시피이다.

이미지 내려받기

이 레시피들을 내려받기 위해서 pull이라는 명령어를 사용한다.

docker pull 이미지

컨테이너 실행

이 레시피(이미지)를 실행하게 되면 레시피에 맞는 컨테이너라는 특별한 상자가 생성된다.

상자 안에는 redis를 구동하기위해 필요한 파일이 담겨있다고 보면된다.

상자가 생성됨과 동시에 상자가 실행된다.

상자가 실행된다는 말은

상자(컨테이너) 안에서 redis가 실행된다 라고 보면된다.

docker run [옵션] [이미지 이름]

 

예시로 Redis를 실행하려면 다음 명령어를 사용할 수 있다.

docker run -d -p 8080:80 redis

-d : 백그라운드에서 실행

-p 8080:80 : 호스트의 8080번 포트를 컨테이너의 80번 포트와 연결

즉 ,외부에서 8080포트로 접속하면 컨테이너 80번 포트와 연결되면서 redis에 접근할 수 있게 된다.

 

실행 중인 컨테이너 확인

현재 실행중인 컨테이너를 확인하려면 다음 명령어를 사용할 수 있다.

docker ps

 

컨테이너 접속

docker exec -it [컨테이너 ID 또는 이름] /bin/bash

 

컨테이너 종료

docker stop [컨테이너 ID 또는 이름]

 

컨테이너 삭제

docker rm [컨테이너 ID 또는 이름]

 

이미지 삭제

docker rmi [이미지 이름]

 

이미지 생성

지금까지는 그냥 docker 완전 기초 명령어이다.

docker를 실제로 잘 활용하려면

도커 허브에서 만들어진 이미지를 pull받아서 사용하는 것도 있지만

이미지를 직접 생성(빌드)하는 일이 매우 중요하다 

 

사용자 정의 이미지를 만들어보자.

예를들어 Spring 웹 애플리케이션을 컨테이너에 띄운다고 가정한다.

spring을 실행하려면 tomcat과 같은 외부 애플리케이션 서버에 배포해야 하므로 위와 같이 배포하는 것이 일반적이다.

이거를 컨테이너에 그냥 그대로 넣는다고 보면된다.

Dockerfile 작성

이미지를 만드는 과정은 아래와 같다

이미지를 만들기 위해서는 Dockerfile이라는 것을 작성해야한다

touch Dockerfile

 

Dokcerfile을 생성하여 아래와 같이 작성하면된다.

 

스크립트를 작성한다고 보면되는데

 

톰캣기반의 이미지를 가져다가

war파일은 뭘쓰고

포트는 뭘쓰고

실행을 할지 말지를

정하는 과정이라고 볼 수 있다.

# 1. Tomcat 9.0 이미지를 베이스로 사용
FROM tomcat:9.0

# 2. WAR 파일을 컨테이너의 Tomcat 웹앱 디렉토리로 복사
COPY target/your-application.war /usr/local/tomcat/webapps/

# 3. Tomcat 서버가 사용하는 포트 8080을 외부에 노출
EXPOSE 8080

# 4. Tomcat 서버를 실행하는 명령어
CMD ["catalina.sh", "run"]

 

FROM tomcat:9.0 는 Docker Hub에서 tomcat:9.0 이미지를 가져오는 것을 의미한다.

  FROM : Dockerfile에서 사용하는 베이스 이미지를 지정하는 명령어이다

  tomcat:9.0 : Docker Hub에 있는 Tomcat의 9.0 버전을 가져온다.

위 Dockerfile은 Docker Hub에서 Tomcat 9.0 버전 이미지를 다운로드한 후,이를 기반으로 컨테이너를 생성하게 된다.

 

Docker 이미지 빌드

Dockerfile이 있는 프로젝트 루트 디렉토리에서 아래 명령어를 실행하여 이미지를 빌드한다

docker build -t my-spring-app .

 

   -t my-spring-app    :    빌드된 이미지의 이름을 my-spring-app 으로 설정한다

   .    :   현재 디렉토리에 있는 Dockerfile을 사용하여 이미지를 빌드한다.

 

아래 명령어로 이미지가 잘 만들어 졌는지 확인한다

docker images

 

이미지 정보를 확인하려면 아래와같이 docker inspect 명령어를 사용하면된

docker inspect my-spring-app

 

Docker 이미지 실행

이미지 빌드가 완료되면, 다음 명령어로 이미지를 실행시키면 컨테이너가 생성 및 실행된다.

docker run -d -p 8000:8080 my-spring-app

 

  -d : 컨테이너를 백그라운드에서 실행

  -p 8000:8080 : 호스트의 8000 포트와 컨테이너의 8080 포트를 매핑

 

Docker Compose 설정 

Docker Compose는 컨테이너 끼리 묶어서 한번에 여러 컨테이너를 실행할 수 있는 기능이다.

즉, 여러개의 서비스를 함께 관리할 수 있다는 뜻이다.

 

docker compose 작성

아래와 같이 Docker-Compose.yml 를 작성을 한다

touch docker-compose.yml
version: '3'
services:
  app:
    image: my-spring-app
    ports:
      - "8080:8080"
  
  db:
    image: mysql
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: user
      MYSQL_PASSWORD: password
      MYSQL_ROOT_PASSWORD: rootpassword
    ports:
      - "3306:3306"

 

docker compose 실행

Docker Compose 설정이 완료되면 아래 명령어로 여러 컨테이너를 한 번에 실행할 수 있다.

docker-compose up -d

 

Docker compose를 이용하여 마이크로 서비스 아키텍처를 구현할 수 있다.

반응형

'DevOps > 🐳 Docker & Kubernetes' 카테고리의 다른 글

Docker | 도커의 접근방식 DinD, DooD  (1) 2024.09.30
Docker | GitLab 설치  (4) 2024.09.27
Docker | PostgreSQL 설치  (2) 2024.09.26
Docker | 도커 설치법  (1) 2024.09.25
Docker | 도커란?  (0) 2024.09.25
  1. 도커 사용법
  2. 도커 완전 기초
  3. 이미지 생성
  4. Docker Compose 설정 
'DevOps/🐳 Docker & Kubernetes' 카테고리의 다른 글
  • Docker | GitLab 설치
  • Docker | PostgreSQL 설치
  • Docker | 도커 설치법
  • Docker | 도커란?
이재원
이재원
깃든블로그이재원 님의 블로그입니다.
이재원
깃든블로그
이재원
유튜브
깃허브
전체
오늘
어제
글쓰기 관리
  • 분류 전체보기 (453) N
    • WORK (11)
      • ✍🏻 기록 (8)
      • PLC (1)
    • DevOps (30)
      • 🛠️ CICD (9)
      • 🐳 Docker & Kubernetes (12)
      • 📡 AWS (3)
      • 🌌 Git (6)
    • 웹 개발 (198) N
      • 🖥️ HTML&CSS (11)
      • 🌐 JavaScript (39)
      • 🍃 SpringBoot (51)
      • 🎆 JSP (15)
      • 🐍 Python (16)
      • ⚛️ React (15)
      • #️⃣ TypeScript (15)
      • 🧊 ThreeJS (13)
      • 🟩 Node.js (16)
      • 🚨 Error Log (7) N
    • 서버&백엔드 (100)
      • 🔥 JAVA (51)
      • 🗃️ DataBase (21)
      • 🐧 Linux (21)
      • 🖥️ Windows (7)
    • AI (6)
      • 🤖 딥러닝 (6)
    • 앱 개발 (1)
      • 📱 Flutter (1)
      • ReactNative (0)
    • 컴퓨터 과학 (71)
      • 🀰 디자인패턴 (10)
      • 🔢 자료구조 (11)
      • 🛜 네트워크 (12)
      • 🖥️ 운영체제 (1)
      • 🔆 프로그래밍 (5)
      • 💯 코테 (32)
    • 개인프로젝트 (4)
      • 🤪 forfun (2)
      • 💼 포트폴리오 (1)
      • 🍎 MacBook (1)
    • 자격증 (1)
      • 💯 OPIC (0)
      • 자격증 (1)
    • 꿀팁 (9)
      • ✨ 유용한 사이트 (8)
      • 📙 티스토리 (1)
    • 여행 (1)
      • ✈️ 해외여행 (1)
      • 🗺️ 국내여행 (0)
    • 음식 (6)
      • 🏰 맛집 (5)
      • 🍰 요리 (1)
    • 일상 (4)
      • 🎨 만들기 (1)
      • 🛒 쇼핑 (2)
      • 👟 운동 (1)
    • 유튜브 (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 양평역
  • 청담메종
  • 코테
  • 이자카야
  • 가성비
  • 영등포구청
  • 역삼
  • 이천
  • 사케
  • 한강
  • 식권관리
  • nestjs
  • thymleaf
  • springboot
  • 키오스크공익
  • 키오스크 공익
  • 스프링부트
  • 러닝
  • 티스토리챌린지
  • 안국역
  • JPA
  • 존맛
  • 코딩테스트
  • 까르띠에
  • 인사동
  • 키오스크
  • 한식
  • java
  • 오블완
  • 맛집
반응형
이재원
Docker | 초간단 도커 사용법
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.