[초보주의] 도커 태그 확인 feat.아키텍처amd/arm
고수님들은 이미 다 알고 계시지만 저같은 초보는 이제야 쓰는 정보를 남길까 합니다...
알고보면 정말 별거 아닌데 블로그나 달소님 사이트에서 줍줍만 하다보니 중요한 걸 놓쳤더군요. 저같은 도린이 여러분은 한 번 쯤 봐두시면 손해는 없으실 듯 합니다.
단, 서론이 많이 깁니다. 바쁘신 분은 "<여기가 본론>"을 드래그 해서 ctrl+F를 눌러 바로 확인하시기 바랍니다.
오늘 참고해볼 자료는 저번에 서버포럼에서 언급된 kasm(https://svrforum.com/svr/249747)입니다. 별로 특별한 이유는 아니고 설명하기 좋은 예제이기 때문입니다.
그 중에서 다뤄볼 것은 ubuntu-focal-desktop이라는 것입니다. (https://hub.docker.com/r/kasmweb/ubuntu-focal-desktop) 여기서 focal은 ubuntu 시리즈 중 ubuntu20을 의미합니다.
여기를 보시면 맨 마지막 즈음에 다음을 입력하라고 나옵니다.
sudo docker run --rm -it --shm-size=512m -p 6901:6901 -e VNC_PW=password kasmweb/<image>:<tag>
이것을 그냥 그대로 입력하면 당연히 안 됩니다. 여기서 <image>와 <tag>를 반드시 수정해줘야 하고 환경변수인 VNC_PW를 반드시 수정해줘야 하기 때문이죠.
<image>의 경우
바로 도커 페이지 제목에 나와있는 ubuntu-focal-desktop을 입력하시면 됩니다. 그리고 일반적인 경우, <tag>는 생략 가능합니다.
이 kasm 시리즈는 여기서 문제가 생깁니다. 왜냐하면 보통은 kasmweb/<image>까지만 입력을 해줘도 알아서 최신버젼, 그러니까 latest라는 태그를 자동으로 가져옵니다. 그러나 이 kasm 시리즈는 latest 태그(또는 버전)을 따로 가지고 있지 않습니다.
예를 들어, 도커 이미지 자동 업데이트 툴인 watchtower의 경우
docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower
맨마지막에 containrrr/watchtower만을 입력해도 containrrr/watchtower:latest를 자동으로 가져옵니다.
그러나 kasmweb의 경우 kasmweb/ubuntu-focal-desktop가 아니라 kasmweb/ubuntu-focal-desktop:<Tag>까지 입력을 해주셔야 합니다.
그러면 태그를 어디서 확인하느냐, 보통 도커 페이지에 바로 보이게 써주는 경우도 있습니다.
예를 들어 우분투 공식 이미지 도커 페이지에는 https://hub.docker.com/_/ubuntu
이렇게 바로 확인 가능하게 해주기도 합니다. 이것은 태그에 따라 다양한 선택지가 있고, 그 선택지가 중요한 경우 보통 이렇게 바로 보여 줍니다.
그러나 watchtower처럼 그냥 최신버전을 쓰면 되는 경우 tag 종류를 생략하는 경우도 많습니다.
그럼 이 kasmweb이라는 곳은 태그도 중요한데 도커 페이지 하단에 보이는 태그 설명도 친절하지 않습니다.
보이는 것은 1.10.0과 1.10.0-rolling밖에 없습니다. 물론 여기 있는 것 중 하나를 써도 되지만 진짜 tag 확인 페이지는 따로 있습니다. (문제는 심지어 이 ubuntu-focal-desktop이라는 이미지에는 해당 태그들이 없습니다... 위의 내용은 kasmweb의 공통적으로 적혀있는 상용구(?) 정도에 불과합니다.)
<여기가 본론>
tag들을 확인하는 것은 매우 간단합니다. 도커 페이지 상단에 보이시면 Tags라는 탭이 있습니다. (녹색 표시)
해당 탭을 누르시면
이 이미지의 전체 태그들이 나옵니다.
따라서
sudo docker run --rm -it --shm-size=512m -p 6901:6901 -e VNC_PW=password kasmweb/ubuntu-focal-desktop:develop-rolloing
이나
sudo docker run --rm -it --shm-size=512m -p 6901:6901 -e VNC_PW=password kasmweb/ubuntu-focal-desktop:develop
을 입력하시면 됩니다.
그리고 주목하셔야 할 부분은 아키텍처입니다.
raspberrypi나 oci a1의 경우 amd 아키텍처가 아니라 arm 아키텍처 입니다. (만약 자신의 컴퓨터 아키텍처를 모르신다면 높은 확률로 amd입니다)
[추가 : ExpBox님의 댓글을 보고 추가합니다. 터미널에 arch를 입력하시면 amd는 x86_64(64bit), i386/i686(32bit) 등등이, arm은 aarch64 등등이 나옵니다.]
도커 이미지는 보통 amd를 제공해주고 arm은 드문드문 제공해줍니다. 같은 이미지라도 태그에 따라 arm을 지원해주기도 하고 지원 안하기도 합니다.
아키텍처에 맞지 않는 <이미지>:<태그>를 쓰시면 "이 이미지는 네 컴퓨터랑 안 맞네요 어쩌죵 ㅎㅎㅈㅅ "라고 해석할 수 있는 친절한(킹받는) 문구를 볼 수 있습니다.
예를 들어 kasmweb/ubuntu-focal-desktop의 경우
태그 둘 다 amd와 arm을 지원합니다.
kasmweb/only-office의 경우(https://hub.docker.com/r/kasmweb/only-office/tags)
모든 태그에서 arm을 지원 안하고 amd만을 지원합니다.
kasmweb/tor-browser의 경우
1.9.0-rolling과 1.10.0-rolling태그는 amd만 지원하고 develop과 develop-rolling태그는 arm까지 지원해줍니다.
즉,
sudo docker run --rm -it --shm-size=512m -p 6901:6901 -e VNC_PW=password kasmweb/tor-browser:19.0
라고 하면 amd만 지원하고
sudo docker run --rm -it --shm-size=512m -p 6901:6901 -e VNC_PW=password kasmweb/tor-browser:develop
라고 하면 arm에서 까지 사용 가능합니다.
arm 아키텍처에서는 도커를 쓰더라도 제약이 많습니다.
그래서 귀찮으시다면 linuxserver처럼 arm을 항상 지원해주는 곳을 찾아보시는 것도 선택지 중 하나입니다.
ex)guacamole 기반으로 웹데스크톱을 돌리는 linuxserver/webtop
쓰다보니 생각보다 글이 조금 길어졌네요. 나름 열심히 썼는데 혹시 저만 몰랐던 거면 어떡하죠...ㅋㅋㅋ;;
좋은글 입니다 ㅎㅎ
제가 반성하게되는군요 ㅎㅎ 앞으로 이미지 소개할때 간단하게라도 태그에관해서 짚고넘어가야겠습니다..
이미지에 따라서 arm은 지원안하는경우도 상당히있다보니 중요할것같네요~~
많은도움이 될듯합니다!
보통은 arm을 지원해주려면 모든 태그에서 지원하거나 아니면 아예 안하거나가 많은데 kasmweb은 지원해주는 이미지 따로, 지원해주는 태그 따로다보니 확인이 필요하더군요. 덕분에 저도 이번에 알게됐습니다.
요즘은 저도 같이 숙제를 하는 기분입니다... 달소님의 분발이 필요합니다 ㅠㅠ 숙제포럼 화이팅!
ㅋㅋㅋㅋㅋ...숙제포럼..ㅋ.ㅋ 이름을 바꿔야하나요? ㅎㅎㅎ
제가 덜해서 초심자님께서 숙제를 더하신다면.. 저는 지금처럼만..
허허... 숙제의 주인장께서 그러시면 아니되십니다...
더 많은 셀프 호스팅을 연구해주시기 바랍니다.
저는 정말 뻘짓님보다 초보인가 봅니다 보는데도 저걸 어디에 쓰는지를 전혀 모르겠네요
그래도 정보 감사합니다 스크랩 해둬야겠네요
대부분은 latest를 사용합니다. DB와 같은 개발자 툴 그리고 심각한 버그 때문에 구버전을 설치할 때 빼고는 버전 컨트롤 할 일이 없습니다. 대신에 뻘짓님처럼 OS/ARCH 쪽은 봐야할 수도 있습니다. 많은 분들이 오라클 ARM 인스턴스를 생성하시는데 거기에 맞는 ARM64로 빌드(짜여진) 이미지가 없다면 생성 자체가 안되거든요.
X86, 그러니까 일반적인 컴퓨터(인텔/AMD)는 거의 모든 이미지가 지원하기 때문에 초보나스님께서 쓰시는 헤놀로지 시스템에서는 크게 생각하지 않으셔도 됩니다.
아하 그렇군요 감사합니다 ^^ 이런게 있구나 하고 생각하고 넘어가면 되는거군요
맞습니다. 하지만 앞서 말씀드렸던 것처럼 ARM를 사용하게 된다면 꼭 알아야하는 정보이니까 혹시나 오라클 ARM 인스턴스 혹은 라즈베리파이 등을 사용하실 때는 확인하셔야합니다!
그냥 도커를 하다 보면 언젠가 자연스럽게 알게 되는 것 같습니다.
특수한 경우를 제외하고 블로그 등에 공개 돼 있는 방식으로 도커를 생성해도 됩니다.
태그를 다룰 때는 도커에 어느정도 익숙해진 이후에야 올겁니다. 왜냐하면 별에 별 거를 설치하다가 안 되는 게 있으면 다르게 설치해볼 것이거든요...
좋은 정보 감사합니다. 저도 이런 점을 간과하고 있었네요. 거진 x86은 그냥 latest를 쓰면된다고 생각해서..
아 덧붙여 아키텍처 확인 방법을 같이 기재해주셨으면 좋겠습니다! 터미널에
arch
라고 입력하면 됩니다. ㅎㅎ
감사합니다. 추가하겠습니다.
어렵습니다 ㅠㅠ
옛 선조들에게서 하얀것은 종이요 검은것은 글씨라 배웠거늘..
요즘 새상엔 어찌 검은것은 바탕이요 하얀것은 글씨이니...
많은 노력이 필요할거같습니다.
지금은 도커 페이지에 "Tags" 탭이 있다는 것을 아신 것만으로도 충분히 얻어내신 겁니다.
세부 활용법은 도커를 여러 개 만들다 보면 자연스럽게 터득하게 됩니다... 진짜 별에 별 짓을 다해보니까요...ㅋㅋ
komga 올렸는데 계속 자동멈춰버립니다.
하나하나 배워야지요 ㅋㅋ
또 하나 배워갑니다
감사합니다^^
cmt alert