Ubuntu个人使用
·
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
更多推荐
所有评论(0)