JINIers
Docker images build 본문
도커로 빌드할 이미지 작성(testserver.py)
# testserver.py
import socket
with socket.socket() as s:
s.bind(("0.0.0.0", 12345)) # 12345 포트 open
s.listen()
print("servier is startd")
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)
testserver.py 실행
python3 testserver.py
다른 탭을 열어 연결한다.
nc 127.0.0.1 12345
그럼 기존 탭에 연결이 됐다고 뜸
다른 탭 터미널에 테스트로 이것저것 써보기
ctrl+C로 빠져나오면 연결이 종료된다.
디렉토리 생성
mkdir project
파일(test_server.py) 이동
mv test_server.py mv project/
dockerfile 생성
FROM python:3.7
RUN mkdir /echo
COPY test_server.py /echo
CMD ["python","/echo/test_server.py"]
RUN & CMD 차이점
run: 컨테이너를 만들 때(이미지를 빌드할 때) 실행됨
cmd: 컨테이너가 실행될 때 실행되는 명령어
* 둘의 시작시점이 다름 run → cmd
파일 실행
docker build -t echo_test .
step 2/4: 디렉토리 생성
step 3/4: test_server.py 파일 복사
step 4/4: cmd에 명령어 등록
이미지 빌드 확인
docker images
컨테이너 빌드
docker run -t -p 12345:12345 --name et --rm echo_test
터미널 새탭을 띄워 서버에 연결
nc 127.0.0.1 12345
연결을 하면 기존 탭에서 연결이 된 것을 확인할 수 있다.
'공부 > Docker&K8S' 카테고리의 다른 글
private registry 구현 및 사용 (0) | 2023.02.13 |
---|---|
docker images push (0) | 2023.02.13 |
환경변수 이용 mysql 구축하기 (0) | 2023.02.10 |
도커 컨테이너 실행 (0) | 2023.02.10 |
도커 명령어 (0) | 2023.02.09 |
Comments