⚡WSL2 에서 Docker 구축하기
도커가 공식적으로 제공하는 설치 스크립트를 이용해서 설치한다.
(버전을 맞춰야한다거나 특별한 이유가 있는 경우가 아니라면 설치 스크립트를 사용해도 상관 없다고 생각을 한다. )
1. 도커 엔진 설치
💢 이미 도커를 설치 해놓고 하다보니 문구가 다를수 있으나, 처음 설치를 한다면 WSL 환경에서는 도커 데스크톱을 쓰기를 추천하다는 문구가 나오게 된다. 하지만 나는 리눅스 커널 환경에서 엔진 설치, 컨텍스트 설정 및 도커 환경 구축을 해보려고 한다.
curl -sSL get.docker.com | sh
커널에서의 경우 help 명령어를 치게 되면 내용에 대해서 상세하게 나오니 익숙하지 않다면 참조해서 한번 보는게 좋다고 생각한다.
설치된 버전을 체크하면서 정상적으로 설치가 되었는지 한번 알아보자. (설치 완료)
2. 도커 컨텍스트 설정
도커 데스크톱을 설치했다면 자동으로 잡아주는 설정에 도커 컨텍스트가 있다. 도커 컨텍스트에는 빌드나 배포 사용 과정에 필요한 정보를 품고 있기 떄문에, 환경 변수 설정을 해야 정상 동작한다.
3, 도커 데몬 실행
아래의 명령어로 커널안에서 docker 서비스를 시작 할수 있다.
sudo service docker start
도커 데몬을 실행 할때, 커널안에서 실행하는 방법이 있고, powerShell 안에서 실행하는 방법이 또 있다.
윈도우용 도커 클라이언트를 다운 받은뒤, wsl에 설치한 도커 엔진을 불러서 사용할수 있다. 이떄 설치한 도커 엔진의 버전을 확인 하고 해당 버전에 맞는 클라이언트를 사용해야 한다.
위의 내용까지 정상적으로 됬다면 이제 docker가 실행이 됬으면 정상적으로 사용할수 있다.
4. 컨테이너 생성 및 실행
gogs 관련 컨테이너를 생성 및 실행 해보도록 하겠다. (회사 내부에서 백업 서버를 구축중이여서....)
docker run --name gogs -p 10022:22 -p 8080:3000 -v gogs-data:/data gogs/gogs
각각의 명령어는 따로 정리 해놓은 내용이 있지만, 다시 한번 정리해서 적을 예정이다.
이렇게 되면 컨테이너가 실행이 된다. 하지만 위의 명령어를 그대로 치게 된다면 커널에서 실행이 된 상태로 멈추게 된다.
백그라운드로 실행을 시켜야지 커널을 계속해서 사용할수 있다..
정상적으로 실행이 되고 있는 모습이다.
나는 gogs 관련 이미지를 이용해서 컨테이너를 만들었지만 다른 이미지를 사용해서 컨테이너를 만들었을것이다. 이떄 설정 파일을 적용 하는 방법에 대해서 설명 하겠다.
docker exec -it <컨테이너ID or 컨테이너명> /bin/bash
위의 명령어를 통해서 컨테이너에 접근하고 conf 파일을 설정해서 사용이 가능하다. 각각의 이미지에 따라서 폴더경로가 다를것이다 도커 공식 페이지에서 해당 정보들을 다 얻을수 있다. 하나를 제대로 볼줄 안다면 다른 부분을 구축할때도 찾아갈수있는 힘이 생긴다고 생각 한다. 꼭 한번 보자.
⚡중요
gogs를 설치했지만 아마 접속이 되지 않을 것이다(...) wsl의 ip는 유동적이기 때문에 윈도우에 알려주지 않으면 알수 있는 방법이 없다. 이부분의 경우, 지난번에 jenkins를 설정하면선 wsl IP를 윈도우 IP로 사용할수 있는 방법에 대해서 정리 했다. 그때 사용했던 .bat 파일을 사용해서 설정하게 된다면 정상적으로 웹페이지 접근이 될것이다.
⚡나의 생각
왜 도커 데스크탑이 있는데 굳이 이렇게 리눅스 커널 환경에서 설정을 하고 있는지 설명 하려고 한다.
도커 테스크탑 공식 문서에 따르면 도커 엔진, 도커 CLI 클라이언트, 도커 컴포즈, 도커 빌드 등 여러가지 도커를 사용하는데 필요한 내용을 한번에 설치가 가능하다. 이렇게만 본다면 도커 데스크탑을 안쓸 이유가 없다. 하지만 docker 자체가 리눅스 가상머신 위에서 동작을 한다 결국 윈도우에서 도커 데스크탑을 설치하게 되면 윈도우 > 리눅스 가상머신 > 도커 실행 이란 소리인데 결국은 느리다(....) 개인적으로 사용을 하고 테스트용도로 사용한다면 크게 문제가 되지 않을수 있다고 생각한다. 하지만 최적화의 측면에서 생각을 해보면 결국 윈도우 환경이 아닌 리눅스 환경에서 도커를 구축해서 사용해야 한다는 소리로 보았다. 그래서 윈도우에서 돌리지만 리눅스 커널 환경에 조금더 적응을 해보자하는 마음으로 구축하게 되었다.
'DevOps' 카테고리의 다른 글
사용중인 Intellij 플러그인 정리 (0) | 2023.03.12 |
---|---|
[Git] 자주 사용하는 명령어 정리 (0) | 2022.11.11 |
Docker란 무엇인가?! (0) | 2022.09.25 |
[DevOps] wsl2 + Jenkins 구축 및 참조 사항 내용 정리 (0) | 2022.05.12 |
[DevOps] wsl2 + Jenkins 구축 진행 (2) (0) | 2022.05.12 |