๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ณต๋ถ€๊ธฐ๋ก/Docker & Kubernetes

MySQL Docker ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ํ•˜๊ธฐ

by kaizen_bh 2026. 1. 15.

 

 

 

 

 

MySQL ๋„์ปค ์ด๋ฏธ์ง€ pull

(fastapi) C:\Users\userpc\Downloads\FastAPI_exp>docker pull mysql:8
8: Pulling from library/mysql
ad9d782f3f87: Pull complete
3709f9999ba9: Pull complete
88358ea2a37f: Pull complete
98f63f165ac1: Pull complete
100b56c3fd28: Pull complete
23eb2baa39f3: Pull complete
08d96bdd8a50: Pull complete
c68ab04cc1e9: Pull complete
bec4df3fa85f: Pull complete
8c32caf90444: Pull complete
Digest: sha256:90544b3775490579867a30988d48f0215fc3b88d78d8d62b2c0d96ee9226a2b7
Status: Downloaded newer image for mysql:8
docker.io/library/mysql:8

 

 

 

 

docker run

(fastapi) C:\Users\userpc\Downloads\FastAPI_exp>docker run --name mysql-tutorial -d -p 3306:3306 mysql:8
0bc486eaef0850b4364ee5f03de776671bb9db1880c3b44b84928451c4bd0b5b
docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: 
bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

 

 

bind: Only one usage of each socket address is normally permitted

 

ํฌํŠธ ์ถฉ๋Œ. ์ด๋ฏธ PC์—์„œ 3306 ํฌํŠธ๋ฅผ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์“ฐ๊ณ ์žˆ์Œ

 

  • ์ด๋ฏธ ๋กœ์ปฌ MySQL ์ด ์„ค์น˜๋˜์–ด ์‹คํ–‰ ์ค‘์ด๊ฑฐ๋‚˜
  • ์ด์ „์— ๋„์šด ๋‹ค๋ฅธ MySQL ์ปจํ…Œ์ด๋„ˆ๊ฐ€ 3306์„ ์ ์œ  ์ค‘

 

 

์‚ฌ์šฉ ์ค‘์ธ ํฌํŠธ ํ™•์ธ

(fastapi) C:\Users\userpc\Downloads\FastAPI_exp>netstat -ano | findstr :3306
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       6736
  TCP    0.0.0.0:33060          0.0.0.0:0              LISTENING       6736
  TCP    [::]:3306              [::]:0                 LISTENING       6736
  TCP    [::]:33060             [::]:0                 LISTENING       6736

 

 

PID 6736 = ๋กœ์ปฌ MySQL ์„œ๋ฒ„๊ฐ€ ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ž„

3306   → MySQL Classic Protocol (์ผ๋ฐ˜ DB ์ ‘์†)
33060  → MySQL X Protocol (MySQL 8 ๊ธฐ๋ณธ)

 

MySQL 8.x๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋กœ์ปฌ์— ์„ค์น˜๋˜์–ด ๋Œ์•„๊ฐ€๊ณ  ์žˆ๋Š” ์ƒํƒœ

  • ์ด์ „์— ์„ค์น˜ํ–ˆ๋˜ SQL ํ”„๋กœ๊ทธ๋žจ์ด ๋จผ์ € ๋Œ์•„๊ฐ€๊ณ  ์žˆ๊ณ 
  • ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด 3306 ํฌํŠธ๋ฅผ ์„ ์ ํ•จ
  • ๊ทธ๋ฆฌ๊ณ  ๋‚˜์ค‘์— ๋„์ปค๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ์„ ๋•Œ ์ถฉ๋Œ์ด ๋ฐœ์ƒ

 

์•„๋ž˜์ฒ˜๋Ÿผ PC ์ ‘๊ทผ ํฌํŠธ๋ฅผ ๋ณ€๊ฒฝํ•ด์„œ ํ•ด๊ฒฐ

docker run --name mysql-tutorial -d -p 3307:3306 mysql:8

 

  • ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€ MySQL: 3306 (๊ณ ์ •)
  • ๋กœ์ปฌ PC ์ ‘๊ทผ ํฌํŠธ: 3307
  • -p [HOST_PORT] : [CONTAINER_PORT]
  • "๋‚ด PC์˜ 3307 ํฌํŠธ๋กœ ๋“ค์–ด์˜จ ์š”์ฒญ์„ ์ด ์ปจํ…Œ์ด๋„ˆ ์•ˆ์˜ 3306 ํฌํŠธ๋กœ ์ „๋‹ฌํ•ด"
[ FastAPI / MySQL Client ]
        |
        |  localhost:3307
        v
+-------------------------+
|      Windows (Host)     |
|        Port 3307        |
+-------------------------+
            |
            |  ํฌํŠธ ํฌ์›Œ๋”ฉ (Docker)
            v
+-------------------------+
|   MySQL Container       |
|   MySQL listens on 3306 |
+-------------------------+

 

 

(fastapi) C:\Users\userpc\Downloads\FastAPI_exp>docker run --name mysql-tutorial -d -p 3307:3306 mysql:8
8bb6e9d7cd63a443a39a06a592d720322701a294fc3022c881318c82212ea8f0

(fastapi) C:\Users\userpc\Downloads\FastAPI_exp>docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

(fastapi) C:\Users\userpc\Downloads\FastAPI_exp>docker ps -all
CONTAINER ID   IMAGE     COMMAND                   CREATED              STATUS                          PORTS     NAMES
8bb6e9d7cd63   mysql:8   "docker-entrypoint.s…"   About a minute ago   Exited (1) About a minute ago             mysql-tutorial

 

  • ํ•˜์ง€๋งŒ ์œ„์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋งŒ๋“ค์–ด์กŒ๋‹ค๊ฐ€ ๋ฐ”๋กœ ์ฃฝ์–ด๋ฒ„๋ฆผ
  • MySQL 8 ์ปจํ…Œ์ด๋„ˆ๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ ์—†์ด ์ ˆ๋Œ€ ์•ˆ ๋œฌ๋‹ค๊ณ  ํ•œ๋‹ค
  • ์ง€๊ธˆ ์ปจํ…Œ์ด๋„ˆ๋Š” ์‹œ์ž‘ํ•˜์ž๋งˆ์ž ์Šค์Šค๋กœ ์ข…๋ฃŒ(exit 1) ํ–ˆ์Œ

MySQL 8 ๊ณต์‹ ์ด๋ฏธ์ง€์˜ ๊ทœ์น™

MySQL ์ปจํ…Œ์ด๋„ˆ๋Š” ์‹œ์ž‘ํ•  ๋•Œ ์ด๋Ÿฐ ์ฒดํฌ๋ฅผ ํ•จ

  • โŒ MYSQL_ROOT_PASSWORD ์—†์Œ
  • โŒ MYSQL_ALLOW_EMPTY_PASSWORD ์—†์Œ
  • โŒ MYSQL_RANDOM_ROOT_PASSWORD ์—†์Œ

๊ทธ๋Ÿผ ์ฆ‰์‹œ ์ข…๋ฃŒ
(๋ณด์•ˆ ๋•Œ๋ฌธ์— ์ผ๋ถ€๋Ÿฌ ์ด๋ ‡๊ฒŒ ์„ค๊ณ„๋จ)

 

 

 

(fastapi) C:\Users\userpc\Downloads\FastAPI_exp>docker run --name mysql-tutorial -e MYSQL_ROOT_PASSWORD=1234 -d -p 3307:3306 mysql:8
e875a6069058203dd08a666efdeef18261bc6e9882a37b29a124288075b62fab

(fastapi) C:\Users\userpc\Downloads\FastAPI_exp>docker ps
CONTAINER ID   IMAGE     COMMAND                   CREATED          STATUS          PORTS                               NAMES
e875a6069058   mysql:8   "docker-entrypoint.s…"   41 seconds ago   Up 39 seconds   33060/tcp, 0.0.0.0:3307->3306/tcp   mysql-tutorial

 

๋ช…๋ น์–ด์— -e MYSQL_ROOT_PASSWORD=1234 ์ถ”๊ฐ€