본문으로 건너뛰기

Day 2 - Docker 이미지 & MySQL

Day 2 - Docker 이미지 & MySQL

목차


1. Nginx 이미지 실행

docker search nginx
docker pull nginx:1.29.3
docker run -d -p 8081:80 --name=my-web-1 nginx:1.29.3

UTF-8 설정

docker exec -it my-web-1 /bin/bash
# http 블록에 charset utf-8; 추가
vim /etc/nginx/nginx.conf
docker exec my-web-1 nginx -s reload

2. Docker Commit

docker commit my-web-1 my-nginx:1.0
docker run -d -p 8082:80 --name=my-web-2 my-nginx:1.0

3. Alpine Nginx

초경량 이미지 (~5MB)

docker run -it --name web -p 8080:80 alpine:latest sh

# 컨테이너 내부
apk update && apk add --no-cache nginx
mkdir -p /run/nginx
nginx -g "daemon off;"

Dockerfile

FROM alpine:latest
RUN apk update && apk add --no-cache nginx
RUN mkdir -p /run/nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

4. MySQL 기본

docker run -d --name=my-mysql-1 \
-e MYSQL_ROOT_PASSWORD=<PASSWORD> \
-p 3306:3306 \
mysql:8.0.44

docker exec -it my-mysql-1 mysql -u root -p

5. MySQL + Volume

mkdir -p ./mysql-data

docker run -d --name my-mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=<PASSWORD> \
-v $(pwd)/mysql-data:/var/lib/mysql \
mysql:8.0.44

컨테이너 삭제 후 재생성해도 데이터 유지


6. MySQL Dockerfile

FROM mysql:8.0.44
COPY my.cnf /etc/mysql/conf.d/my.cnf
docker build -t my-custom-mysql:1.0 .
docker run -d --name my-mysql-custom \
-p 3308:3306 \
-e MYSQL_ROOT_PASSWORD=<PASSWORD> \
my-custom-mysql:1.0

관련 문서

그래프 뷰

그래프 데이터 로딩 중…
현재: Day 2 - Docker 이미지 & MySQL
노드 클릭 → 이동 · 드래그 → 위치 조정