harbor에서 image를 pull 받은 후 해당 이미지를 수정해 배포해본다.
modifytest image를 변경해본다.
[root@kw1 flaskImage]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
modifytest latest fd5a051718ce 4 hours ago 917MB
1. modifytest 이미지를 통해 docker 컨테이너를 생성한 후 bash shell을 통해 컨테이너에 접속한다.
이미지 이름을 사용할 때는 아래 커맨드 사용
docker run -it [이미지 이름] /bin/bash
docker run -it modifytest /bin/bash
이미지 id 사용할 때는 아래 커맨드 사용
docker run -it [이미지 ID] /bin/bash
docker run -it fd5a051718ce /bin/bash
이미지 이름을 사용해 컨테이너에 접속했음
[root@kw1 flaskImage]# docker run -it modifytest /bin/bash
2. 이미지를 수정한다.
기존 modifytest 이미지는 python flask를 사용해 윈터 gif를 출력함
gif를 다른 이미지로 변경 후 이미지를 commit 할 예정임
wget으로 새로운 gif를 jo.gif라는 이름으로 다운로드한다.
root@470d3b7e45a2:/app/static# wget -O jo.gif https://t1.daumcdn.net/cafeattach/1WjuI/2636c1c0653667b79934c8e32c905f58301a0fe2
--2022-04-04 15:59:25-- https://t1.daumcdn.net/cafeattach/1WjuI/2636c1c0653667b79934c8e32c905f58301a0fe2
Resolving t1.daumcdn.net (t1.daumcdn.net)... 121.53.85.3, 2404:4600:9:201:211:249:219:23
Connecting to t1.daumcdn.net (t1.daumcdn.net)|121.53.85.3|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2311808 (2.2M) [image/gif]
Saving to: ‘jo.gif’
jo.gif 100%[========================================================================================================================================>] 2.20M --.-KB/s in 0.1s
2022-04-04 15:59:25 (16.8 MB/s) - ‘jo.gif’ saved [2311808/2311808]
/app/static 디렉토리에 jo.gif가 잘 다운된 것을 확인한다.
root@470d3b7e45a2:/app/static# ls
img.jpg jo.gif winter.gif
/app/templates/index.html 파일을 수정한다.
filename='./winter.gif' -> filename='./jo.gif'로 수정
root@470d3b7e45a2:/app/static# vim /app/templates/index.html
root@470d3b7e45a2:/app/static# cat /app/templates/index.html
<!doctype html>
<html>
<head>
</head>
<body>
<img src="{{ url_for('static', filename='./jo.gif') }}">
</div>
</body>
</html>
★ 컨테이너 종료하지 말고 다른 터미널을 열어서 아래 작업을 진행한다. ★
docker ps로 수정한 컨테이너 id를 복사한다.
[root@kw1 flaskImage]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b66c5bf9cc74 fd5a051718ce "python /app/ksFlask…" 4 hours ago Up 4 hours k8s_modify_modify_default_eabe26a8-1610-4065-8830-6489b5d04dad_0
3. 수정한 이미지를 commit 한다.
docker commit 커맨드로 수정한 내용을 반영한 새로운 이미지를 생성한다.
docker commit [컨테이너 id] [이미지 이름:태그]
★ 그냥 commit하니 이미지가 아무런 동작도 안 함. commit 할 때 CMD 명령을 추가해줌(Dockerfile과 동일하게)
[root@kw1 ~]# docker commit --change='CMD ["python", "ksFlask.py"]' b66c5bf9cc74 modifytest:v5
sha256:488825293a20e968759025bfc7667f30d6c16855b90fe8a8137f4befb9562e15
이제 컨테이너에서 나가도 된다.
root@470d3b7e45a2:/app/static# exit
4. 잘 반영되었는지 확인한다.
docker run으로 이미지를 실행해본다.
docker run -p 0.0.0.0:5000:5000/tcp modifytest:v5
이미지가 변경 완료
'kubenetes' 카테고리의 다른 글
k8s external etcd 구성 (1) | 2022.09.17 |
---|---|
etcd backup, restore (0) | 2022.09.15 |
k8s flask web 수정하기 (0) | 2022.04.04 |
ImagePullBackOff error 해결 (0) | 2022.04.02 |
kubernetes 실행 중인 pod에 접속해 package 설치 (0) | 2022.03.30 |
댓글