How do you run jupyter-repo2docker without Rootless Mode? (original) (raw)
February 20, 2021, 12:21am 1
Checked the search results but couldn’t find anything related to this.
Getting docker
error despite it being installed.
I get an error when trying to run repo2docker
repo2docker) mtg@mtg-ThinkPad-P53:~/DOCKER-CONTAINERS/RUFUS$ jupyter-repo2docker https://github.com/jandrewrfarrell/RUFUS
Docker client initialization error: Error while fetching server API version: ('Connection aborted.', PermissionError(13, 'Permission denied')).
Check if docker is running on the host.
However, docker
works fine:
(repo2docker) mtg@mtg-ThinkPad-P53:~/DOCKER-CONTAINERS/RUFUS$ sudo docker run hello-world
[sudo] password for mtg:
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
I know that the issue is that I’m running repo2docker
as a standard user, but that I’m testing docker as root using sudo
I just don’t know how to solve the problem (for example, I know that if you run docker without sudo this can open you to security risks so I want to do this safely.
Thanks
manics February 20, 2021, 5:14pm 2
When you run docker
at the command line you’re actually running a client command line application, which connects to the docker Daemon using the Docker API. repo2docker uses that same API, it’s just that it’s using the Python client to call the API instead of the docker command line client.
In theory this means if you’re able to configure the Docker daemon to run as rootless (so that you can run the docker
command line client as un unprivileged user) repo2docker shouldn’t need any changes.
My expectation is that if you
- run your docker daemon as rootless following the Docker instructions you linked to
- set
DOCKER_HOST
as instructed in Run the Docker daemon as a non-root user (Rootless mode) | Docker Documentation - successfully run the
docker
client without root
Then repo2docker
should just work