• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
질문

dockerfile 문의 드립니다. 로컬에서 도커 사용시...~

마이크로서버 141

0

14

로컬에서 도커 사용하려고 HQPlayer를 빌드 해보았습니다.

 

debian:bullseye기반으로 작성 했는데요... 이 앱이... 우분투 페도라등 여러 가지가 있습니다.

가장 에러가 나지 않는거 같아 데비안기반으로 했습니다.

 

일단 시행착오끝에... 빌드 하면 빌드는 잘 됩니다.

 

그런데 이상해요...ㅎㅎ 우선 도커 이미지 파일에 빌드한 hqplayerd와 FROM에서 가져온 베이스

기반의 OS가 같이 나타납니다.

 

빌드 하면 하나로 되어 hqplayerd가 되어야 맞지 않나요? 

그리고 빌드는 되고 컴포즈로 올리면 잘 올라가는데요.

 

8088포트로 해서 접속해 보면 접속이 안되네요...ㅜㅜ

뭔가 에러가 있는거 같아서요.

 

제가 한게 이게 맞는지 궁금합니다. 조언 부탁드립니다.

이거 해보느라 오늘 하루 꼬박 투자 했네요...ㅎㅎ

그냥 img 구워서 들으면 되는데... 아니면 VM으로 돌리던지요.

 

그런데 한번 이렇게 해보고 싶었습니다. 나중에 써먹을 일이 있을거 같아서요... 

VM 보다도 도커가 더 편한것 같습니다.

 

조언 부탁합니다. ^^

 

 

 # 저런식으로 베이스 되는 OS하고 빌드 된 파일하고 두개가 생기네요. 잘못 한것 같은데

    지식이 짧아 알수가 없네요... ^^ 도움 부탁드립니다.

 

 

 

 # dockerfile 내용입니다.

 

 

 

 

# 빌드는 크게 문제 없이 된것 같습니다.

신고공유스크랩
14
profile image 1등
너굴맨봇 2024.01.27. 22:38
안녕하세요, @마이크로서버님.😊
 

좋은답변을 받기위해서는 좋은 질문이 필요합니다.

유의할점⚠️

  • 예의를 지켜주세요. 답변자는 답변을 할 의무는 없습니다.
  • 질문에 대한 대부분의 답은 검색으로 찾아보실 수 있습니다.
  • 답변자가 답변을 하면서 대개 많은 경우는 다시 질문을 하는 경우가 많이 있습니다.
    • (질문의 대한 정보가 부족합니다. ~일 경우 결과물이 어떻게 됩니까? 등등)

질문방법🙏

자신의 상황을 최대한 자세히 설명해주세요.

상황이 정확하고 많을 수록 답변의 정확도가 올라갑니다. 

ex) ex) 헤놀로지라면 메인보드 모델 칩셋정보, CPU, 사용한 DSM 버전, 모델, 부수적인 추가 컨트롤러 나 랜카드 등과 어떠한 로더의 이미지를 사용했는지.(arpl-i18n, mshell), 어떤 버전을 사용했는지, 문제가있다면 어떠한것인지 스크린샷을 동반하고 에러의 경우 에러로그를 출력해서 주시면 좋습니다.

*가능하면 최신버전 OS/SW를 이용해주세요

 

답변에대한 피드백을 주세요.

정보가 질문에 모두 담겨있지않다면 대부분의 답변이 다른정보를 요구합니다.

이러한 답변에 대해 명확한 피드백을 주시면 도움이 됩니다.

profile image 2등
달소 2024.01.27. 22:59
빌드할때 debian 이미지를 가져오니 두개가 되는것은 맞습니다.
접속이안되는건,, docker run으로 구동한 컨테이너 내부에서 실제로 8088로 서비스가 돌아가고있는지 포트매핑은 잘되어 있는지 확인해봐야할것같습니다
마이크로서버 글쓴이 2024.01.27. 23:08
달소
그렇군요. 저게 원래 합쳐지는게 아닌가 봐요? 보통 도커 허브에서 빌드 해서 올리는것은 그렇다면 두개의 이미지를 올리고 받는것만 하나 인가 봅니다... 맞는지요? 혹시 하나로 빌드 하고자 한다면 어떻게 방법이 있을까요? ^^;;; 그리고 EXPOSE로 8088 잡아 줬는데 이게 왜 접속이 안되는지 모르겠네요... 흑흑... 확인해 보니 8088에 걸려있는 포트가 안나타나더라구요... 뭐가문제인지 당췌 모르겠습니다. 안되면 우분투나 다른 OS로도 한번 빌드 해봐야 겠어요. 답변 감사합니다. ^^;;; 의외로 로컬 빌드가 굉장히 유용할거 같아요. 굳이 OS 엉망 되가면서 네이티브로 설치 안해도 되구요... ^^;;;
profile image
달소 2024.01.27. 23:11
마이크로서버
네 맞습니다. base 이미지는 또 빌드할때 사용될 수 있으니 로컬에다가 받아놓고 신규로 빌드할때마다 캐싱된 이미지를 사용하는걸로 알고있습니다.

entrypoint쪽에 서비스를 실행할 수 있는 스크립트나 명령어를 넣어주셔서 컨테이너가 실행될때 서비스가 자동으로 실행되도록 해야 8088 서비스가 뜰거같습니다!
마이크로서버 글쓴이 2024.01.28. 12:50
달소
감사합니다. entrypoint쪽에 실행 명령어를 넣어 주어야 하나 보네요. systemctl enable hqplayerd 이렇게 넣으면 될까요? 지금은 haplayerd라고만 넣었어요. 한번 해보겠습니다. 감사합니다
rain 2024.01.28. 13:38
달소
받아온 베이스 이미지는 캐싱용으로만 사용되는 게 아닙니다.
새로 빌드한 이미지의 베이스 레이어로 사용되고, 여기에서 기존 VM들과의 차이점이 나오죠.

예를 들어 debian:bullseye가 1GB정도이고 내가 새로 추가하는게 100MB라고 하면
기존 VM방식은 1.1GB의 이미지가 새로 생성됩니다. 100개 만들면 110GB가 되겠죠.
도커(및 유사 격리솔루션)은 레이어방식의 파일시스템을 채택해서 1GB+0.1*100GB인 11GB만 사용합니다.

저 이미지는 삭제해도 되는데, 삭제해도 실제로 삭제되지는 않습니다. 새로 빌드한 이미지의 하위 Layer로 사용되기 떄문이죠. 레이어 태그만 삭제됩니다.
보기 싫으면 삭제하시면 되고, 태그만 삭제되어 조회만 되지 않아요. 용량 차이는 생기지 않습니다.
마이크로서버 글쓴이 2024.01.28. 16:06
rain
그렇군요. 그러니까 베이스 이미지는 꼭 없어도 되나 계속 추가 빌드 하려면 있어도 무방하다는 이야기시죠? 삭제는 포테이너에서 한번 해봤는데 안되더라구요. 빌드된 컨터네이너 지워야 지워지네요... ^^;;;
제가 도커 허브에 올려 놓은적은 없어서 추가로 질문 드려보는데... 그렇다면 혹시 도커 허브에 올릴때는 베이스 이미지도 같이 올리는것이 맞나요? 이건 그냥 궁금합니다. 저야 올릴일은 사실 없어서요. ^^ 실력도 안되고 잘 참고하겠습니다.
rain 2024.01.28. 17:26
마이크로서버
없어도 되고 삭제도 되어야 정상입니다.
물론 삭제해도 실제로 해당 이미지(레이어)가 삭제되지는 않고, 태그만 삭제되구요.

도커허브에 올리면 자동으로 필요한 것만 올라갑니다. 베이스 이미지 제외하고, 실제 빌드한 이미지 레이어만 올라갈겁니다.
베이스이미지는 이미 도커허브에 있는 걸 써서 올라가지 않지요.
수많은 이미지가 올라가는 리포지터리를 무료로 제공할 수 있는 원동력이기도 하죠.
3등
KelvinKang 2024.01.29. 09:08

우선 도커가 레이어 기반이다 라는것을 이해하면 조금 쉽게 접근 하실수 있습니다.
질문 하신 내용으로 봐도 레이어 기반에 대한 이해가 아직은 없으신 것으로 보입니다.

 

흔이 쓰는 이미지(그림) 편집 프로그램을 예를 들어 설명해 드려보면
이미지에 글씨를 쓰고 싶다고 할때, 우선 편집을 위해서 이미지를 불러 오고, 새로운 레이어를 만들어서 그위에 글씨를 쓰게 됩니다. 그리고 글씨를 편집하거나 위치를 이동해 가거나 하면서 완성을 하게 되죠.
추가로 아이콘 등을 추가 하고 싶을때 또다른 레이어를 만들어서 그 위에 아이콘을 배치하게 됩니다.

물론 베이스 이미지 자체를 편집할 수도 있지만, 원본에 대해 편집이 되버리면 내가 원하는 추가 편집이 불가능 해져서 보통은 기본 이미지를 불러들이고 그 위에 레이어를 생성해서 계속 겹쳐 나가죠.

도커도 똑같다고 보시면 됩니다.

 

누가 이미 만들어둔 베이스 이미지를 가져다가, 그위에 새로운 레이어를 만들어서 내가 원하는 부분을 추가해서 사용하게 됩니다.

 

마이크로서버 글쓴이 2024.01.29. 12:54
KelvinKang
레이어를 모르는 것은 아니고... ^^ 도커가 레이어 기반이라는 것은 잘 모르고 있었습니다. 그냥 가져다가 쓰기만 해서요... ㅎㅎ 자세한 답변 감사합니다.
KelvinKang 2024.01.29. 13:26
마이크로서버

앗.. 그러셨군요, 아래 이미지 보시면 좀더 확실히 이해 되실 거에요.

image.png.jpg

 

몇가지 같이 이해해 두면 좋은 내용을 적어 드립니다.

이미지 빌드

 - 이미지 빌드시 가져오는 원본 이미지는 편집이 불가 합니다.

 - 불러들인 이미지에 내가 만든 이미지를 레이어로 만들어 원본이미지와 링크가 되는 이미지를 생성합니다.

 - 빌드된 이미지에 컨테이너 레이어를 만들어 컨테이너를 만들어서 테스트 됩니다.

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story

본 게시판은 서버구축 게시판과 통합되었습니다.

서버구축 게시판 이동하기