깊은 밤... 2012년 NAS를 처음 들인 이후로 PLEX, crawling, python, docker, GCP 등 여러 친구들과 만나 결국 방구석 우분투 서버로 정착하기까지의 방황하던 시간들을 떠올리다 보니 그동안 배운 잔기술들을 한데 엮어 괴랄한 뭔가(?)를 만들어서 공유해보면 재밌겠다는 생각이 들었습니다. 헌데 그간 종속성 문제로 날린 시간들이 떠올라 처음 설치할 분들의 소중한 시간을 빼앗을까 두려워졌습니다. (결국 매뉴얼 만들고 이것저것 불필요한 것들 설명하고 있을, 미래의 제게 미안해져서 ㅋㅋㅋ) 해서 어차피 할거면 차라리 도커로 이미지 하나 만들어 배포하는 게 더 낫겠다 싶네요. 그간 portainer 등으로 다른이들이 제작한 docker 이미지 쉽게 가져다 쓰곤 했는데 정작 내 커스텀 이미지 만드는 법은 몰랐기에 이것저것 검색하며 windows에 꾸역꾸역 docker 올리고 이것저것 실험 중입니다. 이에 도커 내부에서 동작할 서비스의 자동화와 관련하여 몇 가지 여쭙고자 합니다.
+ native에서 systemd 등으로 등록해서 자동화하던 것들은 docker로 이미지화하면 어떤식으로 구동되나요?
- transmission을 예로 생각해보면 도커 내에서 systemd로 부팅시에 transmission-daemon 실행하게 하는 것인지...
- crontab으로 도커 구동시 (게스트 입장에선 부팅후?) 자동으로 굴러가게 하는 것인지,
- 도커 내부에서 여러 서비스들이 유기적으로 동작케하는 권장 구동방식이 따로 존재할까요?
+ ansible/yml 등으로 사전설정하여 배포된 특정 패키지를 잘 써먹었던 기억이 있습니다.
- 이러한 것들도 docker 이미지 생성에 미리 써먹을 수가 있을까요?
* 이 바닥 출신이 아니라 사용하는 어휘가 구려 죄송합니다ㅠㅠ
* 단순한 검색 추천 키워드만 알려주셔도 충분합니다!
* 훗날, docker hub에 도움주신 분들의 닉네임을 올려 보는 꿈을 꾸며 자러 가보겠습니다.
서비스는 서비스파일에 정의된 것을 실행시켜 주는 것입니다. 서비스 파일을 열어보면 실행할 명령이 지정되어 있습니다.
추가로 의존성이나 유저, 로그 기타등등이 같이 정의되어 있습니다. crontab은 좀 꼬여있긴 하지만 기본방식은 동일합니다.
도커는 파일과 프로세스의 분리를 기반으로 이루어진 기술입니다. 도커이미지를 구동하는 방법이 여러가지가 있겠지만, docker run명령으로 구동한다면 서비스 파일에 정의된 명령을 그대로 혹은 도커에 맞게 수정해서 실행해주면 됩니다. 말처럼 쉽지 않은 경우도 종종 있긴 합니다.
docker-compose의 경우에는 docker이후에 나온 기술이기도 하고 docker를 편하게(?)사용할 목적도 있고 해서 Dockerfile스펙을 대부분 사용할 수 있는 것으로 보입니다.
그렇구요. 사람들 생각이 비슷해서 대부분의 이미지는 docker hub에 존재합니다. 직접 코딩한게 아니라면 가져다 쓰는 것이 편한 경우가 많습니다.