mirror of
https://github.com/coder/coder.git
synced 2026-06-04 13:38:21 +00:00
49 lines
1.4 KiB
Markdown
49 lines
1.4 KiB
Markdown
---
|
|
display_name: Docker Containers
|
|
description: Provision Docker containers as Coder workspaces
|
|
icon: ../../../site/static/icon/docker.png
|
|
maintainer_github: coder
|
|
verified: true
|
|
tags: [docker, container]
|
|
---
|
|
|
|
# Remote Development on Docker Containers
|
|
|
|
Provision Docker containers as [Coder workspaces](https://coder.com/docs/workspaces) with this example template.
|
|
|
|
<!-- TODO: Add screenshot -->
|
|
|
|
## Prerequisites
|
|
|
|
### Infrastructure
|
|
|
|
The VM you run Coder on must have a running Docker socket and the `coder` user must be added to the Docker group:
|
|
|
|
```sh
|
|
# Add coder user to Docker group
|
|
sudo adduser coder docker
|
|
|
|
# Restart Coder server
|
|
sudo systemctl restart coder
|
|
|
|
# Test Docker
|
|
sudo -u coder docker ps
|
|
```
|
|
|
|
## Architecture
|
|
|
|
This template provisions the following resources:
|
|
|
|
- Docker image (built by Docker socket and kept locally)
|
|
- Docker container pod (ephemeral)
|
|
- Docker volume (persistent on `/home/coder`)
|
|
|
|
This means, when the workspace restarts, any tools or files outside of the home directory are not persisted. To pre-bake tools into the workspace (e.g. `python3`), modify the container image. Alternatively, individual developers can [personalize](https://coder.com/docs/dotfiles) their workspaces with dotfiles.
|
|
|
|
> **Note**
|
|
> This template is designed to be a starting point! Edit the Terraform to extend the template to support your use case.
|
|
|
|
### Editing the image
|
|
|
|
Edit the `Dockerfile` and run `coder templates push` to update workspaces.
|