-
4. 쿠버네티스 환경 구축하자 - 도커 이미지 빌드하기infra 2020. 8. 6. 00:29
main.go 파일과 dockerfile 작성이 끝났으면 docker image build 명령으로 도커 이미지를 빌드한다. docker image build 명령의 기본 문법은 다음과 같다.
-t 옵션으로 이미지명을 지정한다. 태그명도 지정할 수 있으며, 생략시에는 latest 태그가 붙는다.
docker image build -t 이미지명 [:태그명] Dockfile의 경로
이예제에서는 example/echo 라는 이미지명을 사용했다. 앞에 example 은 네임스페이스다. 이미지명의 충돌을 피하기위해서는 네임스페이스를 넣는것이 좋다.
$dokcer image build -t example/echo:latest .
빌드를 실행하면 베이스 이미지를 내려받고 RUN이나 COPY 인스크럭션에 지정된 명령이 단계적으로 실행되는것을 확인할 수 있다.
$docker image build -t example/echo:latest Sending build context to Dokcer daemon 67.07kb Step 1/4 : FROM golang:1.9 1.9: Pulling from library/golang Digest: sha256:f7131h1h313j12h312kj12h3k12h33h31k2j3h23kh123j12h3kh13j13h4 ... Successfully tagged example/echo:latest
docker image ls 명령으로 생성된 이미지의 PEPOSITORY, TAG, IMAGE ID, CREATED, SIZE 값등을 확인할 수 있다.
그다음 빌드된 이미지를 실행해볼것이다. 아래와같이 실행되는것을 확인할 수 있다.
$ docker container run example/echo:latest 2020/07/31 15:50:32 start server
만약 실행중인 도커 컨테이너를 확인하고 종료하려면 아래와같은 명령어로 확인 가능하다.
$ docker ps $ docker kill {process-id}
포트포워딩
하지만 위와같이 echo 서버 애플리케이션을 실행하더라도 아래와같이 실제 서버로 요청을하면 서버는 응답하지 않는다.
$ curl http://localhost:8080/ curl: (7) Failed to connect to localhost port 8080: Connection refused
이러한 이유는 도커 컨테이너는 하나의 가상머신처럼 실행되기 때문이다. 실제 컨테이너 안에서 curl을 요청하면 응답을 받을 수 있을것이다. 이처럼 컨테이너에서 포트를 리스닝하기위해서는 외부에서 포트 포워딩을 해줘야한다. 포트포워딩을하기 위해서는 아래와같은 명령어를 사용하면 된다.
$ docker container run -p 9000:8080 example/echo:latest
- -p는 포트포워딩 옵션이다.
이제 curl http://localhost:8080/을 호출해보면 echo 서버가 응답하는것을 확인할 수 있다.
'infra' 카테고리의 다른 글
6. 쿠버네티스 환경 구축하자 - 도커컨테이너 명령어 종류 (0) 2020.08.09 5. 쿠버네티스 환경 구축하자 - 도커 이미지 명령어 활용 (0) 2020.08.06 3. 쿠버네티스 환경 구축하자 - Dockerfile 만들기 (0) 2020.08.01 2. 쿠버네티스 환경 구축하자 - 간단하게 도커 실행해보기 (0) 2020.08.01 1. 쿠버네티스 환경 구축하자 - 도커란 (0) 2020.07.22