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 ์ถ๊ฐ