도커 빌드
python을 사용해 도커를 빌드할 프로그램을 준비한다.
import socket with socket.socket() as s: s.bind(("0.0.0.0", 12345)) s.listen() print("server is started") conn, addr = s.accept() with conn: print("Connected by", addr) while True: data = conn.recv(1024) if not data: break conn.sendall(data)
파이썬 코드를 빌드하고 터미널에서 접속해보자
nc 127.0.0.1 12345
도커파일 생성
별도의 디렉토리 생성해서 dockerfile과 위에서 생성한 python파일을 새 디렉토리에 배치한다.
mkdir my_first_project mv test_server.py ./my_first_project 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"] # 컨테이너 실행될 때
빌드 후 테스트
ls dockerfile test_server.py sudo docker build -t echo_test . sudo docker images sudo docker run -d -p 12345:12345 --name echo_test echo_test
다시 접속해주면 아까 파이썬 코드 돌려서 사용했던 것과 같이 사용 가능해진다.
nc 127.0.0.1 12345
도커 이미지 푸시와 히스토리 확인
docker login docker tag [이미지 이름] [내 id]/[이미지 이름] # 태그변경 필수 docker images docker push [내 id]/[이미지 이름]
위 명령을 통해 이미지 푸시를 할 수 있다.
docker hub에서 확인할 수 있다.
이미지, 컨테이너 모두 지우고 새롭게 run 명령을 해보자
docker run -t -p 12345:12345 --name et --rm didwuddk/echo_test
히스토리 확인하기
이미지를 빌드할 때 어떻게 구성되었는지 궁금할 때 사용한다.
docker history 이미지이름
Uploaded by Notion2Tistory v1.1.0