-
Docker: 윈도우에서 ssh 연결로 간단한 Docker VM 만들기컴퓨터/소프트웨어 2021. 3. 28. 20:16728x90반응형
Docker
1. 준비물
Docker, 윈도우에서 쓸 ssh
2. 할 것
가끔 코딩을 할 때 linux에서만 가능한 부분이 있다. 이럴 때 듀얼 부팅을 하거나 VMWare를 사용할 수 있는데
Docker라는 툴을 이용해서 작고 빠른 가상 환경을 만들어 볼 것이다.
아래 결과물은 윈도우에서 생성한 Debian을 VSCode에서 ssh로 연결해서 데비안 환경으로 코딩하고 실행하는 모습이다.
이렇게 하면 VMWare나 듀얼 부팅으로 데비안 실행 후 파일 옮겨서 할 필요 없다.
가상 OS에 연결해서 윈도우안에서 VSCode로 코딩하면 끝이다.
(터미널도 debian의 것으로 연결해준다.)
3. Dockerfile, docker-compose
매번 update하고 원하는 커맨드들을 install 하면 build 할 때마다 시간이 많이 걸린다.
따라서 간단한 이미지 빌드 후에 아래 이미지를 바탕으로 build를 할 것이다.
(아래 예제는 Debian Buster 버전에 git, make, curl 정도만 추가한 버전이다)
( ※ curl이나 wget은 VSCode ssh 사용에 있어서 꼭 있어야 한다.)
Dockerfile
# Debian buster 최신 (10.8) FROM debian:buster-slim LABEL maintainer="ikr@kakao.com" # Install gcc & make RUN apt-get update && apt-get install -y --no-install-recommends apt-utils \ pkg-config \ gcc \ build-essential \ make \ linux-headers-amd64 \ curl \ git
name에 원하는 이름 (ex. debian_os)을 넣고 build 한다.
docker build -t debian_vm .
로컬에서 불러와도 되지만 이 글에선 docker-hub에 업로드하고 온라인에서 불러올 것이다.
아래 사이트에서 아이디를 만든다.
docker tag debian_vm docker허브id/debian_vm docker push docker허브id/debian_vm
위 명령어를 실행하고 Docker hub에 가보면 내가 빌드한 작은 os가 업로드돼있다.
이제 가상 OS를 만들고 접속해볼 것이다.
위에서 만든 Dockerfile이 없는 폴더로 이동 후 아래를 진행한다.
VM 실행하기
Dockerfile
ssh 아이디 = root, 비밀번호 = root
# 위에서 만든 image 불러오기 FROM docker허브id/debian_vm:latest RUN apt-get install -y openssh-server RUN mkdir -p /var/run/sshd RUN mkdir -p /run/sshd # replace sshd_config RUN sed -ri 's/^#?PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config # set password RUN echo 'root:root' |chpasswd # make .ssh RUN mkdir /root/.ssh RUN apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]
docker-compose.yml
아래 Github에서 참고하였다. (포트가 11111로 설정됨)
version: "3.3" services: my_vm: image: my_vm container_name: my_vm command: /usr/sbin/sshd -D ports: - "11111:22" expose: - "11111"
run.bat
@echo off docker build -t my_vm -f Dockerfile . docker-compose -f ./docker-compose.yml up -d
이제 파워셀이나 cmd에서 ./run 을 입력해서 build 하고 실행시켜준다.
docker-compose ps로 아래와 같이 정상적으로 실행되는지 확인 후 진행한다.
(재부팅한 후에는 docker-compose 명령어만 입력하면 내용물이 안날라간다)
3. VSCode로 연결
아래 Extension을 설치하면 ssh로 도커로 만든 나의 vm os로 연결해서 쉽게 코딩할 수 있다.
파워셀/cmd에서 아래는 먼저 입력해준다.
ssh -l root -p 11111 localhost
그러면 fingerprint 추가 후 (yes), 비밀번호는 root를 입력해서 정상적으로 들어가지는 지 확인한다.
다시 VSCode에서 왼쪽 아래 아이콘 클릭 후 Connect to Host에 아래를 입력 후 연결한다.
ssh -l root -p 11111 localhost
연결에 성공하면 새로 짜던지, git clone 하던지, docker cp로 파일을 옮기면 된다.
결과물
728x90'컴퓨터 > 소프트웨어' 카테고리의 다른 글
scrcpy: Android 스마트폰 화면&소리 컴퓨터에서 캡쳐 (2) 2021.08.15 Github Desktop: verified commit 만들기 (0) 2020.12.16 winstall - Windows Package Manager (0) 2020.10.04