
日常工作中,有时候组内服务器权限限制,一些小的项目尝试在本地跑会更方便。这个博客主要记录一些vmware使用中的要点,方便自己日后回顾,因此多为命令行罗列,具体细节理解提供可参考博客链接。
内存空间管理
交换空间和内存扩展
在编译诸如LLVM等项目时,经常会由于内存空间不够而中断,可以通过扩展内存或是扩展交换空间的方式解决这个问题。step by step的详细介绍可以参考VMware 交换空间博客介绍。如下是简易的steps:
虚拟机设置
- 修改虚拟机内存,点击确定
点击编辑,首选项,扩展内存(需要关机)
下载gparted
1
sudo apt install gparted
运行gparted,然后将unused的灰色内存空间勾选为
linux-swap。在gparted中,点击swap空间(我的在sda4上),点击information,记录uuid号
sudo vim /etc/fstab,修改swapspace处:

sudo swapon /dev/sda4,启用swapspace
用free -m指令查看:

可以看到成功扩容了Mem和Swap
SSH配置相关
ssh配置比较基础,直接参考博客即可:ssh配置。
PIP和APT包管理
pip和apt工具是开发过程中常用的两个包管理工具,区别如下:
pip:Python包的安装工具,用于从Python Package Index (PyPI) 安装Python库。apt:Debian/Ubuntu系统的包管理工具,用于安装系统和应用程序级别的软件(主要是用C/C++等编译的二进制程序,也包括Python、Perl等脚本语言编写的系统级工具)。
更详细的对比见下表:
| 对比维度 | pip (Python 包管理) | apt (Debian/Ubuntu 系统包管理) |
|---|---|---|
| 管理对象 | Python 库和程序 | 系统级软件(C/C++程序、服务等) |
| 依赖范围 | 仅 Python 依赖 | 系统级依赖(共享库、系统服务等) |
| 安装位置 | 用户目录或虚拟环境(~/.local/lib) | 系统目录(/usr, /bin, /etc) |
| 隔离机制 | 虚拟环境 | 全局安装 |
| 包来源 | PyPI(Python 包索引) | Ubuntu/Debian 官方仓库和 PPA |
| 安装权限 | 普通用户权限 | 需要 sudo 权限 |
| 跨平台支持 | 支持所有操作系统 | 仅限 Debian/Ubuntu 系 Linux |
| 依赖解析 | 简单树状结构 | 复杂拓扑关系 |
| 典型用途 | pip install numpy |
sudo apt install python3-numpy |
| 版本控制 | 可精确指定版本 | 安装仓库提供的稳定版本 |
| 配置文件 | requirements.txt | /etc/apt/sources.list |
| 包结构 | Wheel 或源码包 | 预编译 .deb 包 |
| 安装示例 | TensorFlow, Flask, PyTorch | gcc, nginx, docker |
PIP换源
临时换源,用清华镜像:
1 | pip install package -i https://pypi.tuna.tsinghua.edu.cn/simple |
常用国内镜像源:
| 镜像名称 | URL | 推荐指数 |
|---|---|---|
| 清华大学 | https://pypi.tuna.tsinghua.edu.cn/simple | ⭐⭐⭐⭐⭐ |
| 阿里云 | https://mirrors.aliyun.com/pypi/simple | ⭐⭐⭐⭐ |
| 中科大 | https://pypi.mirrors.ustc.edu.cn/simple | ⭐⭐⭐⭐ |
| 豆瓣 | https://pypi.doubanio.com/simple | ⭐⭐⭐ |
| 华为云 | https://repo.huaweicloud.com/repository/pypi/simple | ⭐⭐⭐⭐ |
apt换源
直接修改sources.list,需要sudo权限。
1 | sudo sed -i 's|http://.*archive.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list |
Proxy代理配置
下载东西可以配置proxy,翻墙加速,步骤如下:
clash for windows设置LAN为打开状态
在服务器的terminal中设置环境变量:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18download 代理
export http_proxy="http://192.168.31.174:7890"
export https_proxy="http://192.168.31.174:7890"
验证代理
git config --global --get http.proxy
git config --global --get https.proxy
只对github 做代理
git config --global http.https://github.com.proxy https://192.168.31.174:7890
git config --global http.https.proxy https://192.168.31.174:7890
git config --global http.http.proxy http://192.168.31.174:7890
取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
git config --global --unset http.https://github.com.proxy
参考VMware虚拟机通过宿主机的clash for windows访问外部节点,可以编写一个小的脚本:
1 | !/bin/bash |
Docker命令大全
容器生命周期管理
| 命令 | 说明 | 常用参数 |
|---|---|---|
docker run |
创建并启动新容器 | -it(交互式)-d(后台运行)--name(命名)-p(端口映射)-v(卷挂载)--rm(退出后自动删除) |
docker start |
启动已停止的容器 | -a(附加输出)-i(交互式) |
docker stop |
停止运行中的容器 | -t(超时时间) |
docker restart |
重启容器 | |
docker pause/unpause |
暂停/恢复容器进程 | |
docker rm |
删除容器 | -f(强制删除运行中容器)-v(同时删除卷) |
容器运维操作
| 命令 | 说明 | 常用参数 |
|---|---|---|
docker exec |
在运行中容器执行命令 | -it(交互式终端)-e(设置环境变量) |
docker ps |
查看容器列表 | -a(显示所有容器)-q(仅显示ID)--format(自定义格式) |
docker logs |
查看容器日志 | -f(实时跟踪)--tail N(显示最后N行) |
docker inspect |
查看容器详情 | --format '{{.NetworkSettings.IPAddress}}'(提取特定信息) |
docker stats |
实时监控容器资源 | --no-stream(单次输出) |
镜像管理
| 命令 | 说明 | 常用参数 |
|---|---|---|
docker pull |
拉取镜像 | -a(所有标签)--platform(指定架构) |
docker push |
推送镜像到仓库 | |
docker build |
构建镜像 | -t(打标签)--no-cache(禁用缓存)-f(指定Dockerfile) |
docker images |
列出本地镜像 | -q(仅显示ID)--digests(显示摘要) |
docker rmi |
删除镜像 | -f(强制删除) |
docker tag |
给镜像打标签 | |
docker history |
查看镜像构建历史 |
数据管理
| 命令 | 说明 | 常用参数 |
|---|---|---|
docker volume create |
创建数据卷 | --name |
docker volume ls |
列出数据卷 | |
docker volume inspect |
查看卷详情 | |
docker volume rm |
删除数据卷 |
网络管理
| 命令 | 说明 | 常用参数 |
|---|---|---|
docker network create |
创建网络 | --driver(驱动类型)--subnet(子网) |
docker network ls |
列出网络 | |
docker network connect |
连接容器到网络 | |
docker network inspect |
查看网络详情 |
系统管理
| 命令 | 说明 | 常用参数 |
|---|---|---|
docker system df |
查看磁盘使用 | |
docker system prune |
清理无用资源 | -a(包括未使用镜像)--volumes(包括卷) |
docker info |
显示系统信息 | |
docker version |
显示版本信息 |
组合命令示例
| 场景 | 命令示例 |
|---|---|
| 运行Web服务 | docker run -d -p 80:80 --name webserver nginx |
| 调试容器 | docker exec -it webserver bash |
| 备份数据 | docker run --volumes-from db -v $(pwd):/backup busybox tar cvf /backup/backup.tar /dbdata |
| 查看实时日志 | docker logs -f app |
| 构建多架构镜像 | docker buildx build --platform linux/amd64,linux/arm64 -t myapp . |