环境:
Ubuntu: 22.04
1. 安装Docker
打开你的Ubuntu终端。
更新软件仓库:
sudo apt update
安装所需的包来允许apt通过HTTPS使用仓库:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
添加Docker官方的GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
添加Docker的APT仓库到你的系统:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
再次更新软件包索引:
sudo apt update
安装Docker CE(社区版):
sudo apt install docker-ce
确认Docker已成功安装:
sudo systemctl status docker
这个命令应该会显示Docker服务的状态,它应该是活动的 (running)。
2. 安装Docker Compose
下载Docker Compose的当前稳定版本:
首先,检查Docker Compose的最新版本,你可以通过访问Docker Compose的GitHub发布页面来确认。替换下面命令中的为实际的最新版本号。
sudo curl -L "https://github.com/docker/compose/releases/download/<latest-version>/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
给下载的二进制文件可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
测试安装是否成功:
docker-compose --version
这个命令将输出Docker Compose的版本,证明你已经成功安装。
3. 安装OpenVSCode
保存下面的配置到一个名为docker-compose.yml的文件中:
version: '3.8' # 使用 Docker Compose 文件格式版本3.8
services: # 定义了要运行的服务
openvscode: # 服务的名字
image: gitpod/openvscode-server # 使用的镜像名称
container_name: openvscode-server # 容器的名字
ports:
- "8080:3000" # 映射端口,格式为 <主机>:<容器>。这里我们将容器的3000端口映射到宿主机的8080端口上
volumes:
- "./workspace:/home/workspace" # 映射卷,格式为 <宿主机路径>:<容器路径>。这里我们将当前目录下的workspace文件夹映射到容器的/home/workspace目录
environment:
- PASSWORD=yourpassword # 设置环境变量,这里设置OpenVSCode服务器的访问密码
restart: unless-stopped # 定义容器的重启策略,这里设置为除非人为停止,否则总是重启
version: 指定了Docker Compose文件的版本,这决定了你可以使用哪些功能。
services: 定义了你的应用中的服务,每个服务包含了运行应用的所有必要信息。
openvscode: 服务的名称,你可以自由命名。
image: 指定了要使用的Docker镜像。
container_name: 给创建的容器命名。
ports: 端口映射,格式为“宿主机端口:容器内端口”。这样当你访问宿主机的对应端口时,实际上是访问了容器内的服务。
volumes: 数据卷映射,用于数据持久化和数据共享。宿主机路径(可以是相对路径)映射到容器内的路径。
environment: 环境变量设置。可以用于传递配置到容器内部,例如设置OpenVSCode的访问密码。
restart: 定义了容器的重启策略,例如always、on-failure、unless-stopped。
要启动服务,只需运行以下命令:
docker-compose up -d
此命令将在后台启动定义在docker-compose.yml中的服务。你可以通过访问http://localhost:8080来使用OpenVSCode实例。
要停止并移除服务,可以使用以下命令:
docker-compose down
这将停止并删除所有由docker-compose.yml文件定义的容器和网络。