Zero to Hero
article thumbnail

M1 Docker가 정식 Release 되었다. 열심히 삽질해서 Tomcat 이미지에 HTML 파일을 올려서 접속하는 것을 성공했다. GUI 환경도 잘 되어있어서 가능하지만 이미지 검색할 때 회원가입을 해야 하는 귀찮음(?)때문에 전통적인 CLI방식으로 테스트해봤다.

 

 

Docker Desktop for Apple silicon

 

docs.docker.com

1. Docker 설치

이 부분은 기존의 맥 애플리케이션 설치할 때와 동일하게 진행하면 된다.

설치 후에 Docker의 아키텍처가 Apple인 것을 확인한다. Intel이라고 뜨면 M1용을 설치한 것이 아니니깐 주의.

2. Tomcat 이미지 파일 검색 및 다운로드

// docker hub의 tomcat 관련 이미지를 검색
docker search tomcat

// tomcat 이미지를 다운로드
docker pull tomcat

가장 최상단에 보이는 이미지가 가장 많은 별을 받은 공식 이미지다.

참고로 이 이미지는 정말 아무것도 없는 리눅스 + Tomcat 조합이기 때문에 이미지 생성 후 CLI에서 웬만한 명령어를 인식하지 못한다.

(심지어 vim도 없다, 물론 다 설치하면 사용할 순 있음)

3. 다운로드한 이미지를 이용해 Container 만들기

// 백그라운드에서 실행하는데
// tomcat_test 라는 이름의 컨테이너를 만들고
// 외부 포트 8080과 컨테이너 포트 8080을 바인딩하고,
// 이 컨테이너는 tomcat이라는 이미지 베이스로 만듭니다.
docker run -d --name tomcat_test -p 8080:8080 tomcat

플래그에 대한 정보는 검색을 통해 확인하자.

 

docker containers ls

컨테이너 목록과 간단한 정보를 볼 수 있다. 아까 만든 tomcat_test가 있는 것을 확인할 수 있다.

 

4. index.html 파일을 Tomcat에 넣어주기

테스트용 웹 페이지 하나를 넣어서 잘 접속되는지 확인하자.

vi index.html
<html>
<head>
</head>
<body>
<h1>hello world</h1>
</body>
</html>

 

테스트용으로 만든 내용을 넣어주고 index.html 파일로 저장한다.

vi에 접속한 다음 i를 누르고

아래 내용을 입력한 뒤에 esc를 누르고

:wq! 를 입력하면 예제와 동일한 내용의 파일을 만들 수 있다.

 

그다음 Tomcat으로 위 파일을 보내야 하는데 그전에 디렉터리를 만들어주자.

// tomcat_test 컨테이너의 아래 경로로 cli 접속
docker exec -it tomcat_test /bin/bash
// webapps 디렉토리로 이동
cd webapps
// ROOT 라는 디렉토리 생성
mkdir ROOT
// 원래 shell로 빠져나옴
exit

 

이제 경로도 만들었으니 아까 만든 index.html 파일을 tomcat_test의 다음 경로에 복사한다.

docker cp ~/index.html tomcat_test:/usr/local/tomcat/webapps/ROOT

 

그냥 Tomcat이 있는 CLI에서 만들면 편할 텐데 현재 아무것도 없는 순정상태여서 VIM도 없어서 이렇게 하는 게 테스트 용도로는 편하다.

 

복사가 잘 되었는지 확인하려면 위에 있는 방법으로 ROOT폴더에 index.html이 있는지 확인해보면 된다.

5. 테스트

브라우저에 아래 주소를 입력한다.

localhost:8080/index.html

잘 뜬다.

조금 있어 보이게(?) 테스트하고 싶다면 shell에 아래의 명령어를 입력한다.

 curl -i localhost:8080/index.html

혹시 잘 안된다면 삽질하던 중 기존에 포트가 살아있어서 그럴 수도 있으니깐 포트를 바꾸거나, 사용하던 포트를 죽이고 다시 컨테이너를 실행하거나, 재부팅을 해보면 된다.

 

 

현재 열려있는 포트 확인 및 닫기(mac)

쉘에서 다음과 같이 치면 된다.sudo lsof -PiTCP -sTCP:LISTEN출처: stackExchange

velog.io

요 링크를 참고할 것.

'Programming' 카테고리의 다른 글

Docker 02  (0) 2021.04.23
Docker 01  (0) 2021.04.23
/dev/null 2>&1  (0) 2021.04.05
Crawling with Selenium & BeautifulSoup  (0) 2021.04.05
M1 맥북에서 Pandas 사용하기 with Anaconda3  (0) 2021.03.29
profile

Zero to Hero

@Doljae

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!