본문 바로가기
CI | CD

[Docker] 도커파일(Dockerfile) 작성하기 - 실습편

by ♡˖GYURI˖♡ 2024. 7. 10.
728x90

 

위 영상을 바탕으로 정리한 글입니다!

 

 

 

Dockerfile 코드

FROM httpd

COPY index.html /usr/local/apache2/htdocs/

 

 

index.html 코드

<html>
    <meta charset="utf-8">
    <body>
        <h1>
            Around Hub Studio Present
        </h1>
        <p>
            어라운드 허브 스튜디오 Flature 입니다.
        </p>
    </body>
</html>

 

 

docker build -t test123 .

 

도커파일과 index.html이 있는 폴더로 이동 후, 위 명령어를 쳤는데 에러가 났다.

찾아보니 도커파일을 찾지 못해서 생기는 에러라고...

 

Docker 이미지 빌드 오타 문제 - ERROR: failed to solve: failed to read dockerfile 그리고 ERROR: "docker buildx build"

ERROR: failed to solve: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount837859110/Dockerfile: no such file or directory 도커 이미지 빌드 시 위 오류를 볼 수 있다. 아주 단순한 실수. 도커 파일을 이름을 "Dockerf

jseobyun.tistory.com

 

어이없게도 도커파일을 Dockerfile이라고 작성해야 하는데 DockerFile이라고 작성했기 때문이었다.

 

 

수정해주고 다시 해보니 성공~

 

 

docker image ls

 

image에 test123이 존재하는 걸 확인!

TAG가 latest라고 되어 있는 걸 볼 수 있다.

 

 

docker build -t test123:1.1 .

 

TAG가 1.1로 새로 만들어진 것을 볼 수 있다.

 

 

docker run --name test123_app -p 80:80 test123

 

test123 이미지를 가지고 컨테이너를 생성하였다.

localhsot에 접속해보면 index.html의 내용이 뜨는 걸 볼 수 있다.

Dockerfile에서 index.html을 COPY하도록 설정하였기 때문이다.

 

 

test123_app을 중지시키고 'docker inspect test123' 명령어를 치면 아래와 같이 레이어를 확인할 수 있다.

 

아래는 'docker inspect httpd'를 했을 때의 레이어이다.

 

확인해보면 test123_app의 맨 마지막 레이어가 하나 추가되어 있다는 것을 알 수 있다.

index.html을 COPY한 내용이 포함되어 있는 레이어라고 생각하면 될 것 같다.