VS Code는 서버에서 docker의 개발 환경 구성을 기반으로 합니다.
Dev Containers 플러그인 기반
물론 vscode에서 Dev Containers 플러그인을 직접 다운로드할 수 있으며, 서버에 접속한 후 Dev Containers에서 해당 도커 연결을 찾아 직접 개발합니다.
이 시점에서 서버에서 실행 중인 모든 도커 컨테이너를 볼 수 있으며(개발하려는 도커 컨테이너가 현재 실행 중인지 확인해야 함) 해당 도커 컨테이너를 클릭하여 연결하면 후속 작업이 진행됩니다. 원격 ssh 연결 서버 작동과 일치합니다.
점프 머신 기반
스프링보드 머신은 서버를 스프링보드로 사용하고 이 스프링보드를 통해 서버의 도커 컨테이너에 연결하는 것으로 이해할 수 있습니다.
서버는 ssh를 통해 도커 컨테이너에 연결합니다.
서버는 도커 컨테이너에 직접 연결할 수 있습니다
docker exec -it <docker_container> /bin/bash
. 다음은 ssh를 사용하여 도커 컨테이너에 연결하는 데모입니다.
ssh -p <port> [email protected]
# 注意此处的<port>是指docker容器22端口映射到本地的端口
# 即在创建docker容器的时候 docker run -it -p <host_port>:22 ......
# 此处的<host_port>就是指上述命令中的<port>
위의 명령어를 통해 도커 컨테이너에 접속할 수 있는데, 여기서 주의할 점은 접속하기 전에 도커 컨테이너에서 일부 파라미터를 수정해야 한다는 점이다.
vim /etc/ssh/sshd_config
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
PermitRootLogin yes # root能使用ssh登录
port=22 # 开启22端口
그런 다음 서버의 공개 키를 ~/.ssh/id_rsa.pub
도커 컨테이너의 파일에 추가하여 ~/.ssh/authorized_keys
비밀 없는 로그인을 실현합니다.
VS Code는 도커 컨테이너에 연결하도록 ssh 구성 파일을 구성합니다.
여기에서는 macOS를 예로 들어 먼저 홈 디렉토리에서
~/.ssh/config
파일을 찾습니다.
# 配置服务器作为跳板机
Host server # 自定义即可
User <username>
HostName <server_ip>
Port <port> # 此处<port>是指服务器的ssh端口(默认是22)
IdentityFile ~/ssh/id_rsa # 如果是私钥连接服务器,则需要本地私钥文件
# 利用跳板机连接docker容器
Host server_docker # 自定义即可
User root
HostName 127.0.0.1
Port <map_port> # docker容器22端口映射到server服务器的端口
ProxyCommand ssh -W %h:%p server # 此处的server是跳板机的名字 必须和跳板机的Host后面的名称一致
이 시점에서 VS Code의 remote-ssh 플러그인 아래에 구성된 서버 및 server_docker가 표시됩니다. 연결하려는 도커 컨테이너를 클릭하기만 하면 됩니다.
위의 작업 단계에서 실제로 두 ssh 연결 방법은 동일한 원칙을 가지고 있습니다. 즉, 서버에 먼저 연결한 다음 도커 컨테이너에 연결합니다. 이제 VS Code로 도커 컨테이너를 즐겁게 개발할 수 있습니다!!!