mirror of
https://github.com/coder/coder.git
synced 2025-07-06 15:41:45 +00:00
95 lines
3.1 KiB
Markdown
95 lines
3.1 KiB
Markdown
# Docker
|
|
|
|
Coder with Docker has the following advantages:
|
|
|
|
- Simple installation (everything is on a single box)
|
|
- Workspace images are easily configured
|
|
- Workspaces share resources for burst operations
|
|
|
|
> Note that the below steps are only supported on a Linux distribution.
|
|
> If on macOS, please [run Coder via the standalone binary](../install//binary.md).
|
|
|
|
## Requirements
|
|
|
|
- A Linux machine
|
|
- A running Docker daemon
|
|
|
|
## Instructions
|
|
|
|
1. Run Coder with Docker.
|
|
|
|
```console
|
|
export CODER_DATA=$HOME/.config/coderv2-docker
|
|
export DOCKER_GROUP=$(getent group docker | cut -d: -f3)
|
|
mkdir -p $CODER_DATA
|
|
docker run --rm -it \
|
|
-v $CODER_DATA:/home/coder/.config \
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
--group-add $DOCKER_GROUP \
|
|
ghcr.io/coder/coder:latest
|
|
```
|
|
|
|
> This will use Coder's tunnel and built-in database. See our [Docker documentation](../install/docker.md) for other configuration options such as running on localhost, using docker-compose, and external PostgreSQL.
|
|
|
|
1. In new terminal, [install Coder](../install/) in order to connect to your deployment through the CLI.
|
|
|
|
```console
|
|
curl -L https://coder.com/install.sh | sh
|
|
```
|
|
|
|
1. Run `coder login <access url>` and follow the
|
|
interactive instructions to create your user.
|
|
|
|
1. Pull the "Docker" example template using the interactive `coder templates init`:
|
|
|
|
```console
|
|
coder templates init
|
|
cd docker
|
|
```
|
|
|
|
1. Push up the template with `coder templates create`
|
|
|
|
1. Open the dashboard in your browser to create your
|
|
first workspace:
|
|
|
|
<img src="../images/platforms/docker/login.png">
|
|
|
|
Then navigate to `Templates > docker > Create Workspace`
|
|
|
|
<img src="../images/platforms/docker/create-workspace.png">
|
|
|
|
Now wait a few moments for the workspace to build... After the first build,
|
|
the image is cached and subsequent builds will take a few seconds.
|
|
|
|
1. Your workspace is ready to go!
|
|
|
|
<img src="../images/platforms/docker/ides.png">
|
|
|
|
Open up a web application or [SSH in](../ides.md#ssh-configuration).
|
|
|
|
1. If you want to modify the Docker image or template, edit the files in the
|
|
previously created `./docker` directory, then run `coder templates push`.
|
|
|
|
## Using remote Docker host
|
|
|
|
You can use a remote Docker host in 2 ways.
|
|
|
|
1. Over SSH. See [here](https://registry.terraform.io/providers/kreuzwerker/docker/latest/docs#remote-hosts) for details.
|
|
2. Over TCP. See [here](https://registry.terraform.io/providers/kreuzwerker/docker/latest/docs#certificate-information) for details.
|
|
|
|
## Troubleshooting
|
|
|
|
### Docker-based workspace is stuck in "Connecting..."
|
|
|
|
Ensure you have an externally-reachable `CODER_ACCESS_URL` set. See [troubleshooting templates](../templates/index.md#Troubleshooting) for more steps.
|
|
|
|
### Permission denied while trying to connect to the Docker daemon socket
|
|
|
|
See Docker's official documentation to [Manage Docker as a non-root user](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user).
|
|
|
|
## Next Steps
|
|
|
|
- [Port-forward](../networking/port-forwarding.md)
|
|
- [Learn more about template configuration](../templates/index.md)
|
|
- [Configure more IDEs](../ides/web-ides.md)
|