(Docker) 9. 이미지 빌드

1 분 소요

들어가면서... 
RUM 명령어  VS CMD 명령어
- RUN 명령어는 이미지를 빌드할때 실행되는 명령어
- CMD 명령어는 컨테이너가 시작될때 실행되는 명령어

1. 도커 빌드 프로그램 준비

  • python을 사용해 단순한 서비스를 시작 작성한다.
  • 파일을 작성하여 test_server.py로 저장한다.
`# 1. 파이썬 파일 만들기 test_server.py `
gedit test_server.py 
# test_server.py
import socket

with socket.socket() as s:
  s.bind(("0.0.0.0", 12345))
  s.listen()
  print("server is started")
  conn, addr = s.accept()
  # conn 클라이언트와 통신할 소켓
  # addr 클라이언트의 정보가 들어있음
  with conn:
    print("Connected by", addr)
    while True:
      data = conn.recv(1024)
      if not data: break
      conn.sendall(data)
`# 2. 파이썬 파일 실행하기 test_server.py `
python3 test_server.py 

`# 3. 서버가 잘 구동되는지 확인!!!
       - 명령어 새탭을 열어준다.
       - 아무글자나 쓰고 request, response를 확인해본다.
`
nc 127.0.0.1 12345

2. 도커 파일 생성

  • 별도의 디렉토리를 생성하고 dockfile과 위에서 생성한 python파일을 새 디렉토리에 배치한다.
`1. 새로운 디렉토리에 서버파일을 옴긴다`
mkdir my_first_project
mv test_server.py ./my_first_project/

`2. 해당 경로가 들어가 dockerfile을 생성`
cd my_first_project/
gedit dockerfile
# dockerfile
FROM python:3.7
RUN mkdir /echo  # 디렉터리 만들고
COPY test_server.py /echo # 서버를 복사

CMD ["python", "/echo/test_server.py"] # 실행가능하게 파일 등록
`3. 빌드 하기 `
ls 
sudo docker build -t ehco_test . 
# .은 현재 디렉터리이다. dockerfile이 무조건 있어야한다.

`4. 구동 테스트 해보기`
sudo docker images
sudo docker run -t -p 12345:12345 --name et --rm echo_test

댓글남기기