오픈소스 강의 4주차부터 도커를 배우기 시작했다.
이전 4, 5 주차까지는 도커 사용법과 개념에 대해 배웠다면 중간고사 이후 9, 10주차는 응용을 하는 것을 배웠다.
이 응용 내용이 [도커 컨테이너에서 web 개발하기]이다.
우선 컨테이너 사용을 위해 도커 컨테이너를 생성하고, 이를 호스트와 마운팅해준다.
도커 컨테이너의 저장소
도커 컨테이너의 저장소는 외부와 단절되어 있으며 컨테이너가 삭제될 때 같이 삭제된다. 이와 같은 특성 때문에 컨테이너가 삭제되어도 데이터를 보관할 수 있는 영구 저장소가 필요하다. 또한 외부와 단절되어 있기에 이 컨테이너가 외부와 데이터를 주고 받기 위한 저장소도 필요하다.
따라서 도커는 다음과 같은 2가지 영구 저장소 사용 방식을 제공한다.
- 도커 볼륨
- 바인드 마운트
호스트와 컨테이너 마운팅, 매핑 명령어
우리는 docker run 명령에서 -v 옵션을 사용하여 2번 방식을 사용한다.
docker run -itd --name w7 -p 7070:8080 -v /Users/sbc/Desktop/opensource:/workspace ubuntu:22.04 bash
이 명령어는 w7 컨테이너를 호스트측에서는 #port num 7070, 컨테이너 측에서는 #port num 8080으로 매핑한다는 뜻이다.
또한 호스트 측의 디렉토리(절대 경로: /Users/sbc/Desktop/opensource)와 컨테이너측의 디렉토리(/worksapce)를 마운팅하여 컨테이너와 호스트를 연동시켜준다.
여기서 경로 설정에 유의해야한다. 자꾸 컨테이너에 호스트의 디렉토리가 제대로 마운팅이 안되는 현상이 발생해서 밤새 헤매다 잤는데 다음날 일어나서 보니까 그냥 경로 오타 문제였던 것ㅋㅋ😆
호스트와 컨테이너 ssh 키 설정
호스트에서 키 값을 확인하거나 직접 생성하여 마운팅된 도커 컨테이너에 같은 키 값을 생성해주어야 한다.
키 값 확인 명령어
cd ~/.ssh
cat id_rsa.pub # id_rsa 파일의 개인 키를 확인
cat id_dsa.pub # id_dsa 파일의 공개 키를 확인
나는 호스트에서는 id_ed25519라는 dir를 만들어서 keygen으로 키를 생성해주고, 여기서 개인키를 가져와 도커 컨테이너의 keys dir에 저장해주었다. 원래는 같은 디렉토리명으로 시도하였으나, 도커 컨테이너의 id_ed25519 파일명이 저장이 안돼서 그냥 keys로 했다.
마지막에 chmod 600 ~/.ssh/keys로 권한을 주고, ls -l ~/.ssh/keys로 확인까지 완료!
컨테이너에 git 설치
이제 ssh도 설정해주었으니 컨테이너에 git을 설치하자.
apt update
apt install git
위 명령어로 설치해주고 config 명령어로 사용자를 설정해주면 된다.
도커 컨테이너에 git 설정도 완료..! 호스트에서 같은 파일에 설정해주었는데 docker container에도 자동으로 생겼다.
원래 도커 컨테이너에 깃허브 ssh를 설정해주어야 한다는데 호스트에 설정해도 상관없는 듯하다.
아무튼 이제 개발 준비 끝..
첫번째 포스팅에서는 개발 준비 과정을 정리하였다. 다음 포스팅에서는 이렇게 설정한 환경에서 깃헙 페이지를 만들어볼 것이다.
'회고 & 후기 > 개발 일지' 카테고리의 다른 글
[개발일지] 배포 삽질기 | 심볼릭 링크, 리눅스의 Capacities, ufw, netstat (0) | 2024.03.25 |
---|---|
[개발일지] 개발자가 가져야하는 습관, git pull (0) | 2023.09.20 |
[개발일지] git 영역(Staging)과 소스관리 | 브랜치 전략, PR과 Merge | 협업 시 git 잘 쓰는 방법 (1) | 2023.09.16 |
[개발 일지] 프로젝트 성능 최적화 | 원하는 폴더에 python package 함께 설치하고 AWS Lambda에 zip 파일 올리기 1편 (2) | 2023.06.13 |