Code Server

Code Server 是一个基于 Visual Studio Code 的网页版开发环境,它允许您通过浏览器访问和使用 Visual Studio Code 的功能。


Docker Run

创建容器并运行

1
2
3
4
5
6
7
8
9
10
11
docker run -d \
--name=code-server \
-e PUID=0 \
-e PGID=0 \
-e TZ=Asia/Shanghai \
-e DEFAULT_WORKSPACE=/config/workspace \
-p 8443:8443 \
-v /root/docker/Code-Server/config:/config \
-v /root/docker:/config/workspace \
--restart unless-stopped \
lscr.io/linuxserver/code-server:latest

停止容器并删除

1
docker stop code-server && docker rm code-server

容器运行时的 shell 访问

1
docker exec -it code-server /bin/bash

实时监控容器的日志

1
docker logs -f code-server

容器版本号

1
docker inspect -f '{{ index .Config.Labels "build_version" }}' code-server

镜像版本号

1
docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/code-server:latest

Docker Compose

创建 docker-compose.yaml 文件

1
nano docker-compose.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
---
version: "2.1"
services:
code-server:
image: linuxserver/code-server:latest
container_name: code-server
environment:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
- DEFAULT_WORKSPACE=/config/workspace
- PROXY_DOMAIN=https://nascodeserver.rahn.top
#- PASSWORD= #Web UI 登陆密码
volumes:
- ./config:/config
- /root/docker:/config/workspace
ports:
- 8443:8443
restart: unless-stopped
1
docker-compose up -d

打开 8443 端口

1
ufw allow 8443/tcp

一键脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#! /bin/bash

red(){
echo -e "\033[31m\033[01m$1\033[0m"
}
green(){
echo -e "\033[32m\033[01m$1\033[0m"
}
yellow(){
echo -e "\033[33m\033[01m$1\033[0m"
}


# Code Server

function code-server_install(){
if nc -z localhost 8443; then
green " 8443 端口已经被占用,请检查相关进程。"
exit 1
fi
if docker ps -a --format "{{.Names}}" | grep -q "code-server"; then
green " code-server 容器名已经被占用"
exit 1
fi
if [ ! -d /root/docker/Code-Server ]; then
mkdir -p /root/docker/Code-Server
fi
cd /root/docker/Code-Server
if [ -f "docker-compose.yaml" ] || [ -f "docker-compose.yml" ]; then
echo
green " docker-compose 文件已经存在, 跳过创建 docker-compose.yaml 步骤"
echo
else
cat <<EOF > docker-compose.yaml
---
version: "2.1"
services:
code-server:
image: linuxserver/code-server:latest
container_name: code-server
environment:
- PUID=
- PGID=
- TZ=Asia/Shanghai
- DEFAULT_WORKSPACE=/config/workspace
#- PASSWORD= #Web UI 登陆密码
#- PROXY_DOMAIN= #绑定域名
volumes:
- ./config:/config
- /root/docker:/config/workspace
ports:
- 8443:8443
restart: unless-stopped
EOF
sed -i "s/- PUID=/- PUID=$(id -u)/" docker-compose.yaml
sed -i "s/- PGID=/- PGID=$(id -g)/" docker-compose.yaml
fi
docker-compose up -d
ufw allow 8443/tcp
yellow "-----------------------------------------------"
green " Web 端口:8443"
echo
green " Docker IP = $(ip addr show docker0 | grep 'inet\b' | awk '{print $2}' | cut -d '/' -f1):8443"
echo
green " Web 网址 = http://$(ifconfig $(ifconfig | grep -oP 'enp\w+') | grep 'inet ' | awk '{print $2}'):8443"
echo
green " Code Server 安装完毕!"
yellow "-----------------------------------------------"
}
code-server_install

数据备份

1
2
3
4
5
6
7
8
# 备份
cd /root/docker
tar czvf Code-Server.tar Code-Server
zip -r Code-Server.zip Code-Server

# 解压
tar xzvf Code-Server.tar
unzip Code-Server.zip

内网穿透

1
2
3
4
5
6
[code-server]
type = tcp
local_ip = 127.0.0.1
local_port = 8443
remote_port = 17014
custom_domains = nascodeserver.rahn.top

项目地址:https://docs.linuxserver.io/images/docker-code-server