Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dependencies to connect to a remote docker container in VSCode?

What are the dependencies and steps to connect to a remote docker container from VSCode? So I can properly compile and run the code with the tools in my container environment?

I have tried to follow the instructions here without much luck:

  • https://code.visualstudio.com/docs/remote/containers-advanced#_developing-inside-a-container-on-a-remote-docker-host

My setup involves:

  • Host with VSCode, no docker installed, ssh client installed, ssh keys are in place
  • Server with VSCode, docker installed, ssh client and server installed
  • Docker container already running on Server

Host can connect to Server, through VSCode using the Remote Development Version: 0.17.0 extension, through Remote - SSH Version: 0.47.2 extension Version: 0.47.2

Server can connect to Docker container, through VSCode using the Remote Development Version: 0.17.0 extension, through Remote - Containers Version: 0.83.1 extension.

How do I connect Host to a Running Docker container?

UPDATE 1 Small advance

I have added this line to my ~/.config/Code/User/settings.json file. The option gets highlighed with a message unknown configuration setting

{
...
"docker.host":"tcp://localhost:23750",
...
}

Run this command in another terminal:

ssh -N -L localhost:23750:/var/run/docker.sock  <user>@<serveraddr>

And now I can see the running containers in Remote explorer > Containers > Other Containers. However, when trying to connect to it, I get the following error message.

Setting up container with bc1700db049858ba20f1c830bbeff6d6a4e04de58a2b35a61df1016788bc07db
Docker returned an error code 127, signal null, message: Command failed: docker system info
/bin/sh: docker: command not found
like image 880
nico Avatar asked Dec 08 '19 00:12

nico


Video Answer


1 Answers

So, it appears that docker must be installed on the host machine to prevent the last mentioned error.

Note: docker service does not need to be running in the host (systemctl disable docker)

With this in mind, these are the steps.

Host:

  1. Install docker and ssh client
  2. Add your user to docker group
  3. Install VSCode
  4. Configure Server
  5. (After server config below): edit ~/.config/Code/User/settings.json with
"docker.host":"tcp://localhost:23750",
  1. Configure your ssh keys for the Server
  2. (After every reboot run on terminal: ssh -N -L localhost:23750:/var/run/docker.sock <user>@<serveraddr>)
  3. Run VSCode and install Remote Development extension. Restart VSCode
  4. Now you should see your running containers in VSCode Remote explorer > Containers > Other Containers

Server:

  1. Install docker and ssh server
  2. Install VSCode (this may not be a requirement on the server)
  3. Add your user to docker group and start your container
like image 119
nico Avatar answered Sep 30 '22 16:09

nico