M1 Docker가 정식 Release 되었다. 열심히 삽질해서 Tomcat 이미지에 HTML 파일을 올려서 접속하는 것을 성공했다. GUI 환경도 잘 되어있어서 가능하지만 이미지 검색할 때 회원가입을 해야 하는 귀찮음(?)때문에 전통적인 CLI방식으로 테스트해봤다.
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
혹시 잘 안된다면 삽질하던 중 기존에 포트가 살아있어서 그럴 수도 있으니깐 포트를 바꾸거나, 사용하던 포트를 죽이고 다시 컨테이너를 실행하거나, 재부팅을 해보면 된다.
요 링크를 참고할 것.
'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 |