vscode使用云服务器

添加ssh ubuntu(用户名)@ip地址

安装docker

更新软件包索引

sudo apt update

安装依赖包

sudo apt install -y ca-certificates curl

创建用于存储 GPG 密钥的目录

sudo install -m 0755 -d /etc/apt/keyrings

下载 GPG 密钥

sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

更改密钥文件的权限

sudo chmod a+r /etc/apt/keyrings/docker.asc

添加 Docker 的软件源

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

更新软件源并安装 Docker

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

验证安装是否成功

docker -v

开机自启

systemctl is-enabled docker

替换国内镜像源

打开配置文件

sudo vim /etc/docker/daemon.json

添加镜像源

{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "http://hub-mirror.c.163.com",
    "https://docker.nju.edu.cn"
  ]
}

重启 Docker 服务

sudo systemctl restart docker

验证配置

sudo docker info

测试

sudo docker container run hello-world

添加当前用户

sudo usermod -aG docker $USER

刷新当前会话的组权限

newgrp docker

执行一个 Docker 命令不加 sudo ,比如 docker images,可以看到命令正常运行。

Docker镜像列表

docker image list

Docker删除镜像

docker rmi 镜像名

Docker当前运行容器

docker ps

Docker查看所有容器

docker ps -a

Docker查看日志

docker logs 容器名

Docker 安装 MySQL 8.4.2

# 1. 创建数据持久化目录
sudo mkdir -p /data/mysql/data
​
# 2. 运行 MySQL 8.4.2 容器
docker run -d \
  --name mysql8 \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=你的密码 \
  -v /data/mysql/data:/var/lib/mysql \
  --restart unless-stopped \
  mysql:8.4.2

sql文件导入

# 1. 先创建数据库
docker exec -i mysql8 mysql -uroot -pQaz123456 -e "CREATE DATABASE IF NOT EXISTS your_database;"
​
# 2. 导入到指定数据库
docker exec -i mysql8 mysql -uroot -pQaz123456 your_database < /path/to/your/file.sql

打开sql命令行

docker exec -it mysql8 mysql -uroot -p

Docker安装redis

sudo docker run -d \
--name redis-6380 \
-p 6380:6379 \
-v redis-data:/data \
redis:7-alpine \
redis-server --appendonly yes --requirepass "your_password"
​
​
#完整
sudo docker run -d \
  --name redis-6380 \
  -p 6380:6379 \
  -v redis-data:/data \
  --restart unless-stopped \
  redis:7-alpine \
  redis-server --appendonly yes --requirepass "your_password"  

Docker打开redis命令行

docker exec "容器id" redis-cli -a "password" ping

Docker安装postgres

#1. 拉取 PostgreSQL 镜像
docker pull postgres:latest
​
​
# 2. 运⾏ PostgreSQL 容器
# -p 5432:5432: 将容器的5432端⼝映射到宿主机的5432端⼝
# -e POSTGRES_PASSWORD=bit: 设置PostgreSQL的postgres⽤⼾密码
# --name postgres-sql: 给容器命名
# -d: 后台运⾏
docker run --name postgres-sql --restart unless-stopped -e POSTGRES_PASSWORD=bit -p 5432:5432 -d postgres

Docker打开postgres命令行

docker exec -it postgres-sql psql -U postgres -d postgres -W

Docker更新postgres密码

docker exec -it postgres-sql psql -U postgres -c "ALTER USER postgres WITH PASSWORD 'newpassword';"

Docker安装LangGraph命令行

# 安装虚拟环境支持
sudo apt install python3-venv -y
​
# 创建虚拟环境
python3 -m venv langgraph-env
​
# 激活虚拟环境
source langgraph-env/bin/activate
​
# 在虚拟环境中安装
pip install -U "langgraph-cli[inmem]" -i https://pypi.tuna.tsinghua.edu.cn/simple
​
# 使用完后可以退出虚拟环境
# deactivate

Nginx

是一个高性能的http服务器和反向代理服务器

单台服务器可以处理10000个并发连接的问题

Docker 容器部署静态网页

# 使用你的实际路径
docker run -d \
  --name nginx-web \
  -p 80:80 \
  -v /home/ubuntu/lesson/house-agent/static:/usr/share/nginx/html:ro \
  nginx:alpine

-v 参数是 Docker 数据卷挂载,把宿主机的目录映射到容器内部

组成部分 作用
/home/ubuntu/project/static 你电脑上的文件夹(真实文件位置)
/usr/share/nginx/html 容器内部 Nginx 默认读取网页的目录
ro read-only,容器只能读不能改你的文件

Docker 容器部署反向代理

Nginx.conf
server {
    listen 80;
    server_name _;
    
    location / {
        root /usr/share/nginx/html;
        index index.html other.html;
    }
    
    location /api/ {
        rewrite ^/api/(.*) /$1 break;
        proxy_pass http://容器名:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_buffering off;
        proxy_cache off;
        proxy_http_version 1.1;
        proxy_set_header Connection '';
        chunked_transfer_encoding off;
    }
}

Nginx 反向代理需要和后端容器在同一个 Docker 网络
# 1. 创建 Docker 网络
docker network create app-network
​
# 2. 将后端容器连接到网络
docker network connect app-network house-api-2-langgraph-api-1
运行 Nginx 容器
docker run -d \
  --name nginx-web \
  -p 80:80 \
  -v ~/nginx-config/nginx.conf:/etc/nginx/conf.d/default.conf:ro \
  -v /home/ubuntu/lesson/house-agent/static:/usr/share/nginx/html:ro \
  nginx:alpine
  
docker run -d \
  --name nginx-web \
  -p 80:80 \
  -v html路径:/usr/share/nginx/html:ro \
  -v nginx配置文件路径:/etc/nginx/conf.d/default.conf:ro \
  nginx:alpine
​
#当前路径
# 运行 Nginx 容器(使用当前目录下的 nginx.conf)
docker run -d \
  --name nginx-web \
  -p 80:80 \
  -v $(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf:ro \
  -v $(pwd)/static:/usr/share/nginx/html:ro \
  nginx:alpine

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐