话不多说,先来看一个页面。

Docker 搭建云端开发环境 code-server_Server

有没有很熟悉,就是 web 版本的 vscode。

有时候我会拉一些开源项目到本地跑一遍,但是对于 node 这种项目,一个项目可能下载的以来就有几百 m。虽然说硬盘也不贵,但是对于这种下载到本地实在不方便,也不想污染本地的环境。

所以把代码下载到虚拟机是一个不错的选择。但是由于虚拟机基本都是最小化安装,没有图形界面就不太方便修改代码。

code-server 可以很好解决这个问题,使用 docker 安装更是隔离了环境,不管在容器里下载 python,node 都是非常方便的,并且不会影响宿主机的环境。

下面是安装 code-server 的步骤。

Docker 安装 code-server

1 改权限(可选)

我习惯在容器里面也能使用 docker 命令,所以需要修改 docker.sock 的权限并将其映射到容器内。

Docker 搭建云端开发环境 code-server_运维_02

chmod a+rw /run/docker.sock # 或者 chmod a+rw /var/run/docker.sock

这里就看 docker.sock 文件在哪里了,都运行一遍也没关系。

2 运行

docker run -d \
--name=code-server \
-e DEFAULT_WORKSPACE=/config/workspace \
-e PASSWORD=123 \
-e SUDO_PASSWORD=123 \
--net host \
-v /home/docker/code-server/config:/config \
-v /root:/config/workspace \
-v /run/docker.sock:/var/run/docker.sock \
-v $(which docker):/usr/bin/docker \
-v $(which docker-compose):/usr/bin/docker-compose \
--restart always \
--privileged=true \
linuxserver/code-server:latest

DEFAULT_WORKSPACE 是指定 web 访问时默认的工作目录。
PASSWORD 进入 web 页面的密码。
SUDO_PASSWORD 是容器内使用 sudo 命令时需要的密码。(为了安全,默认账号并不是 root 运行)

​-v /root:/config/workspace​​ 则是把宿主机的 root 目录作为工作目录。

3 修改映射目录的权限(可选)

chmod -R 777 /root/

想要在容器内不出现权限问题,就改 777 权限,这个依据情况而定。

SUDO_PASSWORD 是使用 sudo 命令时候使用的命令。即 root 命令。

4 配置 code-server

4.1 显示顶部菜单

左上角 -> View -> Appearance -> Show Menu Bar

4.2 修改主题颜色(个人比较喜欢黑色的背景)

设置 -> Color Theme -> Dark

4.3 设置不显示隐藏文件夹

设置 -> 搜索 file.exclude -> Add Pattern ​​**/.*​

4.4 安装扩展

  • Chinese - 汉化
  • Live Server - 静态页面服务器(方便访问)

5 安装开发环境

根据需要,在终端运行如下命令:

# 切换 root 用户
sudo su
# 更新源
sed -i "s/archive.ubuntu.com/mirrors.aliyun.com/g" /etc/apt/sources.list && apt update
# 安装 python
apt install -y python
# 安装 nodejs,自行调整版本
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash
apt install -y nodejs
# 安装 jdk
apt install -y openjdk-8-jdk