Ubuntu Server 上的 Docker 与 Portainer 可视化面板以及 Code-Server 的安装与配置

作者:问题终结者2024.03.22 19:44浏览量:60

简介:本文旨在指导读者在 Ubuntu Server 上安装 Docker,配置 Portainer 可视化面板,并部署 Code-Server,实现代码的远程编辑与执行。通过本文的步骤,读者将能够轻松搭建一个功能强大的远程开发环境。

在 Ubuntu Server 上安装 Docker、Portainer 可视化面板以及 Code-Server 可以让我们轻松地管理容器化应用和进行远程代码编辑。下面,我将分步骤介绍如何完成这些操作。

一、安装 Docker

首先,我们需要安装 Docker。由于 apt 官方库中的 Docker 版本可能较旧,我们先卸载可能存在的旧版本,然后更新 apt 包索引,并安装 Docker。

  1. 卸载旧版本的 Docker(如果已安装):
  1. sudo apt-get remove docker docker-engine docker-ce docker.io
  1. 更新 apt 包索引:
  1. sudo apt-get update
  1. 安装 Docker:
  1. sudo apt-get install docker-ce docker-ce-cli containerd.io
  1. 启动 Docker 服务:
  1. sudo systemctl start docker
  1. 设置 Docker 开机自启:
  1. sudo systemctl enable docker

二、配置 Docker 以支持远程访问

为了让 Portainer 和 Code-Server 能够访问 Docker,我们需要修改 Docker 的配置文件,使其监听所有网络地址。

  1. 编辑 Docker 的服务文件:
  1. sudo vim /lib/systemd/system/docker.service
  1. ExecStart 行后添加 -H 0.0.0.0:2375,使得 Docker 监听所有地址的 2375 端口。
  1. ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H 0.0.0.0:2375
  1. 重启 Docker 服务:
  1. sudo systemctl daemon-reload
  2. sudo systemctl restart docker

三、安装 Portainer 可视化面板

Portainer 是一个开源的 Docker 可视化工具,通过它我们可以更直观地管理 Docker 容器和镜像。

  1. 下载 Portainer 镜像:
  1. docker pull portainer/portainer-ce
  1. 运行 Portainer 容器,并将 9000 端口映射到主机:
  1. docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ce

现在,你可以通过访问服务器的 9000 端口来打开 Portainer 的可视化界面,并使用 admin/admin 作为默认用户名和密码登录。

四、安装 Code-Server

Code-Server 是一个基于 VS Code 的远程代码编辑器,我们可以在上面编写和运行代码。

  1. 下载 Code-Server 镜像:
  1. docker pull codercom/code-server
  1. 运行 Code-Server 容器,并将 8443 端口映射到主机(你可以选择一个不同的端口,只要确保它是开放的):
  1. docker run -d -p 8443:8443 --name code-server -v ~/.local/share/code-server:/root/.local/share/code-server codercom/code-server

现在,你可以通过访问服务器的 8443 端口来打开 Code-Server,并在浏览器中编写和运行代码。

通过以上步骤,你已经在 Ubuntu Server 上成功安装了 Docker、Portainer 可视化面板和 Code-Server。现在,你可以通过 Portainer 管理 Docker 容器和镜像,并通过 Code-Server 进行远程代码编辑和执行。