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