# 디렉토리 생성
mkdir -p /docker_projects/nginx_1/project
# 디렉토리 이동
cd /docker_projects/nginx_1/project
# 파일 생성
echo '<h1 style="color: blue">Hello Nginx</h1>' > index.html
# 제대로 생성되었는지 확인
cat index.html
vim Dockerfile
i
버튼을 눌러 끼워넣기 모드를 실행해야 편집할 수 있다.:q!
:wq!
# 베이스 이미지
FROM nginx
# 도커 컨테이너 내부의 디렉토리 이동
WORKDIR /usr/share/nginx/html
# 호스트 폴더(./) 의 내용을 /usr/share/nginx/html 폴더로 이동한다.
# 기존의 index.html 이 지워지고 우리가 만든 재료(index.html)가 저장된다.
COPY ./ ./
# 이 컨테이너는 80을 사용한다는 뜻 (설정해 놓는 편이 좋다.)
EXPOSE 80
-t
: 생성할 이미지의 이름과 태그를 지정하는 옵션.
: 현재 폴더를 뜻한다.
docker build -t {이름, 태그} {레시피가 위치한 디렉토리}
# 현재 디렉토리에서 레시피를 찾아
# nginx_custom_1 라는 이름과 태그를 가진 이미지를 빌드해라.
docker build -t nginx_custom_1 .
⚠️ 이미지를 pull 할 OS 버전이 맞지 않는다면 BUILD 할 때 버전을 명시해주서 해결할 수 있다.
docker build --platform linux/amd64 -t choidaekuk/project
<none>
으로 변경되고 새로운 이미지가 만들어진다.docker images
[root@localhost project]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx_custom_1 latest d013c87f1b6b 37 seconds ago 135MB
nginx latest 9e7e7b26c784 12 days ago 135MB
# 기존 도커 컨테이너 삭제
docker rm -f nginx_1
# 도커 볼륨 삭제
rm -rf /docker_projects/nginx_1/volumes
docker run \
--name=nginx_1 \
-p 80:80 \
-d \
--restart="always" \
nginx_custom_1 # 직접 빌드한 이미지 이름 입력
[root@localhost project]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e9f5d08cb84d nginx_custom_1 "/docker-entrypoint.…" 17 seconds ago Up 16 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp nginx_1
[🔗 DNS 파일 수정하기](https://velog.io/@shdrnrhd113/DNS-%EC%88%98%EC%A0%95%ED%95%98%EA%B8%B0)
🔗 노드 이미지 기반으로 실습해보기
docker rmi -f {이미지명}
docker rm -f {컨테이너 아이디}