Docker ๋ž€?

JBoBยท2023๋…„ 1์›” 20์ผ
0

Docker

๐Ÿง Docker ๋ž€?

  • ๋‹ค๋ฅธ ์šด์˜์ฒด์ œ์—ฌ๋„ ๋„ํฌ ๋ฒ„์ ผ์€ ํ†ต์ผ
  • ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ ์•ˆ์— ๋˜๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋ฅผ ํ‚ค๋ ค๊ณ  ํ•˜๋‹ˆ ๋ ‰์ด ๊ฑธ๋ฆฐ๋‹ค.
  • ์ปค๋„์€ ์ปดํ“จํ„ฐ ์šด์˜ ์ฒด์ œ์˜ ํ•ต์‹ฌ์ด ๋˜๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ, ์‹œ์Šคํ…œ์˜ ๋ชจ๋“  ๊ฒƒ์„ ์™„์ „ํžˆ ํ†ต์ œํ•œ๋‹ค. ์šด์˜ ์ฒด์ œ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„ ๋ฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ํ•ต์‹ฌ!!

๐Ÿง Docker์˜ ์žฅ์ 

  1. ๊ฐœ๋ฐœ/๋ฐฐํฌํ™˜๊ฒฝ ํ†ต์ผ
  2. ํ”„๋กœ๊ทธ๋žจ ๋ฏธ๋ฆฌ ์„ค์น˜
  3. ๊ฐ€๋ฒผ์šด ๊ฐ€์ƒ์ปดํ“จํ„ฐ
  4. ๋ฏธ๋ฆฌ ์„ค์น˜๋œ ๋„์ปค๋ฅผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ์ „๋‹ฌ ํ• ์ˆ˜ ์žˆ๋‹ค.(๊ต‰์žฅํžˆ ํšจ์œจ์ ์ด๋‹ค)

๐Ÿง Docker๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

์šฐ๋ฆฌ๊ฐ€ ์„œ๋ฒ„๋ฅผ ๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ™˜๊ฒฝ(์„œ๋ฒ„๋ฅผ ๋Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ”„๋กœ๊ทธ๋žจ)์ด ๊ฐ–์ถฐ์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํšŒ์‚ฌ์—์„œ ์‹ ์ž…์ด ๋“ค์–ด์™”์„ ์‹œ, ๊ฐ™์ด ์ข…์‚ฌํ•˜๊ธฐ ์œ„ํ•ด์„  ์ปดํ“จํ„ฐ์˜ ํ”„๋กœ๊ทธ๋žจ ๋ฒ„์ ผ์ด ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฒ„์ ผ๋“ค์„ ๋งž์ถ”๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋งž์ถฐ์•ผ ๋˜๋Š”๊ฒŒ ํ•œ๋‘๊ฐ€์ง€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.(ex. Node.js, express, Nodemon, ๋“ฑ๋“ฑ)

๊ทธ๋ž˜์„œ ๋งค๋ฒˆ ๊ตฌ์ถ•ํ•˜๋Š” ๊ณผ์ •์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋„์ปค์— ํŒŒ์ผ๋“ค์„ ๊ธฐ๋กํ•˜๊ณ  ๊ทธ ๊ธฐ๋กํ•œ ๊ฒƒ์„ ์ด๋ฏธ์ง€๋ฒ ์ด์Šค๋กœ ๋งŒ๋“ค์–ด ๋ฐฐํฌํ•˜์—ฌ ์ „๋ณด๋‹ค ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์ด ํ˜‘์—…ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด ์กŒ์Šต๋‹ˆ๋‹ค.์ด๊ฒŒ ์š”์ฆ˜ Docker๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค.

๐ŸงDocker container ๋ž€?

์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜๋กœ ๋Œ€ํ‘œ์ ์œผ๋กœ LXC(Linux Container)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด OS๋ฅผ ๊ฐ€์ƒํ™” ์‹œํ‚ค๋˜ ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ ์ปจํ…Œ์ด๋„ˆ๋Š”ย OS๋ ˆ๋ฒจ์˜ ๊ฐ€์ƒํ™”๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฒฉ๋ฆฌ์‹œ์ผœ ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

ํ•œ ์„œ๋ฒ„์˜ ์—ฌ๋Ÿฌ OS๋ฅผ ๊ฐ€์ƒํ™” ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ์ปจํ…Œ์ด๋„ˆ ๋ฐฉ์‹์œผ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฒฉ๋ฆฌ์‹œ์ผœ ๋™์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์–ด๋– ํ•œ ์ฐจ์ด์ ์ด ์žˆ์„๊นŒ์š”?

<์ถœ์ฒ˜>

๊ธฐ์กด์— ์šฐ๋ฆฌ์—๊ฒŒ ์ต์ˆ™ํ•œ ๊ฐ€์ƒ ๋จธ์‹ ๊ฐ™์€ ๊ฒฝ์šฐ์—” Host ์œ„์— ๊ฐ€์ƒํ™”๋ฅผ ์‹œํ‚ค๊ธฐ ์œ„ํ•œ Hypervisor ์—”์ง„ ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์œ„์— Guest OS๋ฅผ ์˜ฌ๋ ค ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ€์ƒํ™”๋œ ํ•˜๋“œ์›จ์–ด ์œ„์— OS๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋Š” ํ˜•ํƒœ๋กœ ๊ฑฐ์˜ ์™„๋ฒฝํ•˜๊ฒŒ Host์™€ ๋ถ„๋ฆฌ๋œ๋‹ค๊ณ  ๋ด๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— ์ปจํ…Œ์ด๋„ˆ๋Š” Docker ์—”์ง„ ์œ„์— Guest OS๋ฅผ ์ œ์™ธํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋งŒ ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋Š”OS ๊ทธ๋ฆฌ๊ณ  Docker ์—”์ง„์œ„์—์„œ ๋ฐ”๋กœ ๋™์ž‘ํ•˜๋ฉฐ ์ปค๋„์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.

์ด์™€ ๊ฐ™์ด ๋„์ปค์—๋Š” ์ถ”๊ฐ€์ ์ธ ์šด์˜์ฒด์ œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์–ด ๊ฐ€์ƒ๋จธ์‹  ๋ณด๋‹ค ๋น ๋ฅด๊ณ ,์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉ ํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐ŸงDocker image๋ž€?

  • Docker Image๋ž€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์‹คํ–‰ํŒŒ์ผ, ์„ค์ • ๊ฐ’ ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ
  • Image๋ฅผ ์ปจํ…Œ์ด๋„ˆ์— ๋‹ด๊ณ  ์‹คํ–‰์„ ์‹œํ‚จ๋‹ค๋ฉด ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ž‘ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ

์ด์ œ Docker๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿงย Dockerfile ์ž‘์„ฑ

์šฐ์„  ์ฒซ์งธ๋กœ ๋จผ์ € ํŒŒ์ผ์ด ์žˆ์–ด์•ผ๊ฒ ์ฃ ?์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๋จผ์ € ํ•ด์ค˜์•ผ ํ• ๊ฒƒ์€ ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ์ž๊ธฐ ํŒŒ์ผ์— ํŒŒ์ผ ์ถ”๊ฐ€ํ•˜์—ฌ Dockerfile ์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

Dockerfile ํŒŒ์ผ์— ๋“ค์–ด๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค.

// 1-1. ์šด์˜์ฒด์ œ ๋ฐ ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜ํ•˜๊ธฐ.(ํ•˜๋‚˜ํ•˜๋‚˜ ์ž…๋ ฅํ•˜๋Š” ๋ฐฉ์‹!)
 FROM ubuntu:22.04

 RUN sudo apt install nodejs
 RUN sudo npm install -g yarn

// ์ฐฉํ•œ ์‚ฌ๋žŒ์ด ๋งŒ๋“ค์–ด์ค€ ๋ฐฉ์‹.
// 1-2. ์šด์˜์ฒด์ œ ๋ฐ ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜(์ด๋ฏธ ๋ฆฌ๋ˆ…์Šค, node, npm, yarn๊นŒ์ง€ ๋ชจ๋‘ ๊น”๋ ค์žˆ๋Š” ์ปดํ“จํ„ฐ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐฉ์‹)
FROM node:14

// 2. ๋‚ด ์ปดํ“จํ„ฐ์— ์žˆ๋Š” ํด๋”๋‚˜ ํŒŒ์ผ์„ ๋„์ปค ์ปดํ“จํ„ฐ ์•ˆ์œผ๋กœ ๋ณต์‚ฌํ•˜๊ธฐ.
// COPY๋ž€? ๋„์ปค ๋ฐ”๊นฅ์—์žˆ๋Š” ๊ฒƒ์„ ์•ˆ์ชฝ์œผ๋กœ ๋ณต์‚ฌํ•ด์ฃ ~
// RUN mkdir myfolder => ์•„๋ž˜์—์„œ COPYํ•  ๋•Œ,์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋ฏ€๋กœ ๊ตณ์ด ํ•„์š”์—†์Œ!
COPY . /myfolder/

WORKDIR /myfolder/
RUN yarn install

// ๋„์ปค ๋นŒ๋“œ : ๋„์ปค ์ €์žฅ ๋ฐ ์ตœ์ ํ™” => ๋„์ปค ์ด๋ฏธ์ง€ : ๋„์ปค ๋นŒ๋“œ๊ฐ€ ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€๋กœ ์ €์žฅ ํ•œ๊ฒƒ.

// 3. ๋„์ปค ์•ˆ์—์„œ index.js ์‹คํ–‰์‹œํ‚ค๊ธฐ.
// 01.
RUN node index.js
// 02. CMD ๋ช…๋ น์–ด๋Š” ๊ทธ ์œ„์— ์Šคํฌ๋ฆฝํŠธ๊นŒ์ง€ ์ €์žฅ๋œ๋‹ค. ๊ทธ ์œ„์— ๊ฒƒ๋“ค์„ ์‹คํ•ผ์‹œํ‚ฌ๋•Œ
// ์–ธ์ œ์“ฐ๋ƒ? ๊ทธ ์œ„์— ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ์‹คํ–‰ ์‹œํ‚ฌ๋•Œ (CMD๊ฐ€ ๋“ค์–ด๊ฐ„ ๋ถ€๋ถ„๋“ค์€ ์ €์žฅ์ด ์•ˆ๋œ๋‹ค.) =>์‹คํ–‰ ๋ช…๋ น์–ด
// CMD ๋Š” ๋งˆ์ง€๋ง‰์— ํ•œ๋ฒˆ๋งŒ ์“ธ์ˆ˜ ์žˆ๋‹ค. (COPY๋Š” ๋ฌด์ˆ˜ํžˆ ์“ธ ์ˆ˜ ์žˆ์Œ)

// docker run ์œผ๋กœ ์‹คํ–‰ํ•œ๋‹ค. => ๋Œ€์ฒด ๋ช…๋ น์–ด 
CMD yarn start:dev  

// 1.bulid ->์ปดํ“จํ„ฐ ๋งŒ๋“ค์–ด์ง(๋„์ปค ์ด๋ฏธ์ง€)
// 2.์ด๋ฏธ์ง€ ์‹คํ–‰

FROM node:14 ์„ ํ•˜๋ฉด node, npm, yarn์ด ๋ชจ๋‘ ์„ค์น˜๋œ ๋ฆฌ๋ˆ…์Šค ์ปดํ“จํ„ฐ๊ฐ€ ํ•˜๋‚˜ ์ƒ๊ธฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

COPY ./index.js /index.js ๋ฅผ ํ•˜๋ฉด index.js ํŒŒ์ผ์— ์žˆ๋Š” ๋ชจ๋“  ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ฐ€์ƒ ์ปดํ“จํ„ฐ ์•ˆ์˜ index.js ํŒŒ์ผ๋กœ ๋ณต์‚ฌํ•˜์—ฌ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๐ŸงDocker ์‹คํ–‰ ๋ฐฉ๋ฒ•

Docker build๋ž€?

  • ๋„์ปค ์ €์žฅ ๋ฐ ๊ทธ ์ €์žฅ ํ•œ๊ฒƒ์„ ์ตœ์ ํ™” ํ•˜์—ฌ processํ™” ํ•œ ๊ฒƒ

์ด์ œ Docker build ํ•˜๊ธฐ ์œ„ํ•ด ํ„ฐ๋ฏธ๋„์— ๋“ค์–ด๊ฐ€ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ค๋‹ˆ๋‹ค.

// 1.
docker build //Dockerfile ์— ์žˆ๋Š” ๊ฒƒ์„ ์ €์žฅํ•ด์ค€๋‹ค.
// 2.
docker images //๋นŒ๋“œ ์™„๋ฃŒ ํ›„ ์ด๋ฏธ์ง€ ์ƒ์„ฑ๋œ ID ํ™•์ธ
// 3.
docker run imagesID // ์ƒˆ๋กœ์šด ์ปดํ“จํ„ฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ด๋ฏธ์ง€ ์‹คํ–‰
// 4.
docker ps // ํ˜„์žฌ ์ผœ์ ธ์žˆ๋Š” ์ด๋ฏธ์ง€ID ์ƒํƒœ 

์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด ๋†“์œผ๋ฉด ์–ธ์ œ ์–ด๋””์„œ๋“  ๊ฐ€์ƒ ์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๐Ÿงย **.dockerignore ํŒŒ์ผ์ด๋ž€?**

.gitignoreย ํŒŒ์ผ๊ณผ ๋น„์Šทํ•˜๊ฒŒ,ย .dockerignoreย ํŒŒ์ผ์€ ํ•˜๋‚˜์˜ ๋„๊ตฌ๋กœ์จ,

์ •๋ง๋กœ ํ•„์š”ํ•œ Docker ๋นŒ๋“œ ๋‚ด์šฉ์„ ์ •์˜ ํ•˜๋Š”๋ฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด ํŒŒ์ผ์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ, ์–ด๋–ค ํด๋”์™€ ํŒŒ์ผ๋“ค์ด ๋„์ปค๋ฅผ ๋นŒ๋“œํ• ๋•Œ์— ๋ฌด์‹œ๋˜๊ณ , ์˜ˆ์™ธ์ฒ˜๋ฆฌ๊ฐ€ ๋ ์ง€ ๊ธฐ์ค€์„ ์ •ํ•ฉ๋‹ˆ๋‹ค

.dockerignoreย ํŒŒ์ผ์— ํฌํ•จ๋œ ํŒŒ์ผ๋“ค๊ณผ ํด๋”๋“ค์€,๋นŒ๋“œ๋‚ด์šฉ์— ํฌํ•จ๋˜์ง€ ์•Š๊ฒŒ ๋˜์–ด์„œ ๋„์ปค ์„œ๋ฒ„์— ์—…๋กœ๋“œ๊ฐ€ ๋˜์ง€ ์•Š์„๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด node_modules ์— ์žˆ๋Š” ํŒŒ์ผ๋“ค์€ ์šฉ๋Ÿ‰๋„ ํฌ๊ณ  ๋‹ค์‹œ ๋‹ค์šด๋ฐ›๋Š”๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ค ๋น„ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

์ด๋ฅผ .dockerignore ํŒŒ์ผ์— ๋„ฃ๊ฒŒ ๋˜๋ฉด ์‹œ๊ฐ„์ด ํšจ์œจ์ ์ด๊ณ  ์šฉ๋Ÿ‰๋„ ์ ์–ด์ ธ ์šฉ๋Ÿ‰๊ด€๋ฆฌ๊ฐ€ ํŽธํ•ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๐ŸงํฌํŠธ ํฌ์›Œ๋”ฉ ์ด๋ž€?

์ด์ œ ์—ฐ๊ฒฐ์„ ํ•˜๊ณ  postman ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‹คํ–‰์„ ์‹œํ‚ค๋ฉด ์—ฐ๊ฒฐ์ด ์•ˆ๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„์ปค ์ปดํ“จํ„ฐ๋กœ ํฌ์ŠคํŠธ ๋งจ ํฌํŠธ๋ฒˆํ˜ธ ์—ฐ๊ฒฐ์ด ์•ˆ๋˜๋Š” ์ด์œ 

localhost:3000 โ‡’ ๋‚ด์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰๋˜๋Š” ํฌํŠธ๋ฒˆํ˜ธ

ํ•˜์ง€๋งŒ ๋„์ปค์—์„œ ์—ด๊ฒŒ ๋œ๋‹ค๋ฉด ๋„์ปค ์•ˆ์— express๊ฐ€ ์‹คํ–‰์ค‘์ด๊ณ  ๋„์ปค๊ฐ€ ๊ฐ€๋กœ ๋ง‰๊ณ  ์žˆ์–ด์„œ ํฌ์ŠคํŠธ๋งจ์—์„œ ๊ธธ์„

์žƒ์–ด๋ฒ„๋ ค ์—ฐ๊ฒฐํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ด๋‹ค.๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ƒˆ๋กœ์šด ๊ธธ์„ ๋‚ด์ค˜์•ผ ํ•˜๋Š”๋ฐ ๊ทธ๊ฒƒ์ด ํฌํŠธ ํฌ์›Œ๋”ฉ์ด๋‹ค!

ํฌํŠธ ํฌ์›Œ๋”ฉ ์œผ๋กœ ์ƒˆ๋กœ์ด ๊ธธ์„ ๋‚ด์ฃผ๋ ค๋ฉด ํ„ฐ๋ฏธ๋„์— ์ƒˆ๋กœ์šด ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.!

docker run -p 2500:3000 imagesID
// 0.0.0:2500->3000/tcp ๊ฐ€ ์ผœ์ง„๋‹ค.

๐Ÿงย Docker ํŽธ๋ฆฌํ•œ ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด

์ด์ œ ๋„์ปค๋ฅผ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ ์ข…๋ฃŒํ•˜๊ณ  ๋„์ปค์˜ ์ปดํ“จํ„ฐ ์ข…๋ฃŒ๋œ ๋ชฉ๋ก๋“ค์ด ์ปดํ“จํ„ฐ ๋ฐ์Šคํฌํƒ‘์— ๋‚จ์•„์žˆ์Šต๋‹ˆ๋‹ค.์ด๋ฅผ ๋ฐฉ์น˜ํ•˜๊ฒŒ ๋˜๋ฉด ์šฉ๋Ÿ‰์ด ์ปค ์ปดํ“จํ„ฐ ํ•˜๋“œ๋””์Šคํฌ์— ๋ฌด๋ฆฌ๊ฐ€ ๊ฐˆ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ ์•ˆ์“ฐ๋Š” ์ด๋ฏธ์ง€๋“ค์€ ์‚ญ์ œํ•ด์ฃผ๋Š”๊ฒŒ ์ข‹๊ฒ ์ฃ ?

๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด๋ถ€ํ„ฐ ํ•œ๋ฒˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

//์ข…๋ฃŒ ๋ฐฉ๋ฒ•
docker ps // 1.ํ˜„์žฌ ์žˆ๋Š” ์ƒํƒœ (ID๊ฐ€ ๋‚˜์˜ค๋ฉด ์ผœ์ง„๊ฒƒ)
docker stop (containerID) // 2.ํ˜„์žฌ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ๋„์ปค ์ •์ง€ํ•˜๊ธฐ
docker ps // 3. ์ •์ง€ ๋œ๊ฑฐ ํ™•์ธํ•˜๊ธฐ

//์ •์ง€๋˜์–ด ์žˆ๋Š” ์ปดํ“จํ„ฐ ์ข…๋ฃŒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•
// 1. ์ปจํ…Œ์ด๋„ˆID
docker ps -a // ์ •์ง€๋œ ์ปดํ“จํ„ฐ ๋ชฉ๋ก
docker rm (containerID) // (์ปจ๋ฐ์ด๋„ˆID) ์‚ญ์ œ
docker ps -a -q // ์ •์ง€๋œ ์ปจํ…Œ์ด๋„ˆID ๋ชฉ๋ก
docker rm `docker ps -a -q` // ์ •์ง€๋œ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ID ๋ชฉ๋ก ์‚ญ์ œ (๋ฐฑํ‹ฑ ์ฃผ์˜)
// 2. ์ด๋ฏธ์ง€ID
docker rmi (imagesID)// ์ด๋ฏธ์ง€ID ์‚ญ์ œ 
docker images -q // ์ •์ง€๋œ ์ด๋ฏธ์ง€ID ๋ชฉ๋ก
docker rmi `docker images -q` // ์ •์ง€๋œ ์ด๋ฏธ์ง€ID ์ „์ฒด ์‚ญ์ œ
// 3. ์ „์ฒด ์‚ญ์ œ
docker system prune -a // ์ •์ง€๋œ ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ,๋„คํŠธ์›Œํฌ,์ด๋ฏธ์ง€ ์‚ญ์ œ
docker container restart 'container id' // ์ •์ง€๋œ ์ปจํ…Œ์ด๋„ˆ ์žฌ์‹œ์ž‘

์ฐธ๊ณ :
https://djangojeng-e.github.io/2020/07/28/TodoList-32%ED%8E%B8-dockerignore-%ED%8C%8C%EC%9D%BC/

https://medium.com/@darkrasid/docker%EC%99%80-vm-d95d60e56fdd

profile
๊ฐ„์ ˆํ•˜๊ณ  ์น˜์—ดํ•˜๊ฒŒ ์‚ด์ž

0๊ฐœ์˜ ๋Œ“๊ธ€