250805-Docker Images离线打包

docker images如何离线打包

脚本示例

1
2
3
4
5
6
7
8
9
# 导出
sudo docker save mongo > mongo_250805.tar
sudo docker save postgres > postgres_250805.tar
sudo docker save ghcr.io/ferretdb/all-in-one > ferretdb_250805.tar

# 导入
sudo docker load -i mongo_250805.tar
sudo docker load -i postgres_250805.tar
sudo docker load -i ferretdb_250805.tar

在有网络的机器上,可以使用以下步骤将 Docker 镜像离线打包:

打包镜像

  • 使用 docker save 命令:将指定的 Docker 镜像保存为一个 .tar 格式的归档文件。例如,要将名为 nginx 的镜像打包,可以运行以下命令:

    1
    docker save nginx > nginx.tar
  • 指定输出路径:也可以使用 -o 参数指定输出文件的路径。例如:

    1
    docker save -o /path/to/nginx.tar nginx

传输打包后的文件

  • 将生成的 .tar 文件复制到离线机器上。可以使用 USB 驱动器、SCP、SFTP 等方式。

在离线机器上加载镜像

  • 使用 docker load 命令:加载 .tar 格式的镜像文件。例如:

    1
    docker load -i nginx.tar

或者:

1
docker load < nginx.tar
  • 确认镜像加载成功:运行 docker images 命令,查看加载的镜像是否出现在列表中。

打包多个镜像

如果需要将多个镜像打包到一个文件中,可以将多个镜像名称作为参数传递给 docker save 命令。例如:

1
docker save image1 image2 > images.tar

250801-Maven-T-1C多线程编译参数配置

⚠️ 注意事项:

  • 若项目模块间依赖复杂,Maven 会自动限制并行度;
  • 若内存较小,建议不要设置过高(如 -T 2C-T 4C),避免 OOM;
  • 日志可能会乱,建议加 -B(batch 模式)或 --log-file 输出到文件

✅ 可选配置参考:

参数 含义 4核CPU下的线程数
-T 1C 每核 1 个线程 4
-T 2C 每核 2 个线程 8
-T 0.5C 每两核 1 个线程 2
-T 4 固定使用 4 个线程 4

如无特殊需求,**-T 1C** 是推荐起点,平衡性能与稳定性。

优化建议

在多核 CPU 环境下,Maven 的 -T 参数用于控制并行构建线程数,合理设置可以显著提升构建效率。以下是基于最新资料(截至 2025
年)的优化建议


推荐设置原则

CPU核心数 推荐参数示例 说明
4核 -T 1C-T 1.5C 使用 4~6 线程,避免过度占用系统资源
8核 -T 1.5C-T 2C 使用 12~16 线程,适合中大型项目
超线程支持 -T 1.5C 如4核8线程,1.5C = 12线程,性能提升明显

实战命令示例

1
2
3
4
5
6
7
8
# 推荐:按核心数1.5倍并行构建(平衡性能与稳定性)
mvn clean install -T 1.5C

# 保守:使用与核心数相同的线程数
mvn clean install -T 1C

# 激进:使用固定线程数(需测试是否稳定)
mvn clean install -T 8

⚠️ 注意事项

  • 模块依赖复杂时慎用高并发:Maven 会自动跳过有依赖冲突的模块,线程过多反而降低效率。

  • 内存限制:并行构建会显著增加内存占用,建议同步设置:

    1
    export MAVEN_OPTS="-Xmx2g -Xms1g"
  • CI/CD环境建议实测:不同机器、不同项目结构下,最优线程数可能不同,建议用 time mvn -T X clean package 实测对比。


最佳实践总结

场景 推荐参数 说明
本地开发 -T 1C-T 1.5C 稳定优先,避免影响IDE响应
CI/CD流水线 -T 1.5C-T 2C 构建时间短,资源可控
多模块大项目 -T 1.5C + 增量构建 结合 -pl 局部构建更佳

如无特殊需求,**-T 1.5C** 是当前多核 CPU 下 Maven 构建的推荐起点,兼顾速度与稳定性

2508-(转载)项目管理流程图

https://www.sohu.com/a/747270060_121119370
https://zhuanlan.zhihu.com/p/1914602995661907658

01

项目管理工作流程图

img

这张图就对项目管理的全流程做了详细的解析。

从图中可以看到一个完整的项目流程全貌,以及在不同流程需要项目经理重点关注的内容。

02

集成项目工作流程图

img

03

敏捷迭代项目流程图

img

04

IT项目验收流程图

img

05

互联网产品

项目管理流程图

img

06

项目立项流程图

img

07

项目提案流程图

img

08

项目实施流程图

img

09

技术部开发流程图

img

10

软件开发流程图

img

11

项目交付流程图

img

12

P2流程图

img

许多人对项目管理的整个流程缺乏清晰的了解,只知道有启动、规划、执行、监控和收尾这五个大的过程组。然而,这五个过程组之间存在着密切的关系,并且相互影响。

1、项目管理工作流程图

img

img

img

img

**
**

2、项目管理全流程图

img

3、产品开发全流程

4、项目整体流程图

5、IT项目管理流程图

img

6、软件项目研发流程图

img

7、产品研发工作流程图

img

8、产品研发流程图

img

*
*

9、 集成项目工作流程图

img

*img*

10、 敏捷迭代项目流程图

img

*img*

11、 项目验收流程图

img

*
*

12、 互联网项目管理流程图

*img*

13、 项目立项流程图

*img*

14、 项目提案流程图

*img*

15、 项目实施全景流程图

*img*

16、技术部开发流程图

*img*

17、软件开发流程图

*img*

18、 硬件开发流程图

img

250728-ubuntu20.04安装chrome 后,提示密钥 通过ssh访问 如何解决

Ubuntu 20.04 Chrome 密钥提示 SSH 访问 解决方法

你在 Ubuntu 20.04 通过 SSH 远程登录后运行 Chrome,仍然弹出“解锁登录密钥环”提示,是因为:

SSH 默认不会解锁 GNOME Keyring(密钥环),而 Chrome 启动时又依赖它保存密码、Cookie 等数据,因此会反复提示输入密码。


✅ 解决方法(适用于 SSH 远程会话)

✅ 方法 1:修改 Chrome 启动参数,跳过密钥环

强制 Chrome 使用“基础密码存储”,不再依赖 GNOME Keyring:

1
google-chrome-stable --password-store=basic

永久生效(对所有用户):

1
sudo sed -i 's|^Exec=/usr/bin/google-chrome-stable|Exec=/usr/bin/google-chrome-stable --password-store=basic|' /usr/share/applications/google-chrome.desktop

✅ 方法 2:手动解锁密钥环(一次性)

如果你必须使用密钥环(如保存密码),在 SSH 会话中手动解锁:

1
2
export DISPLAY=:0
gnome-keyring-daemon --unlock

注意:此方法需要你在本地已登录图形界面,且 SSH 用户与桌面用户一致。


✅ 方法 3:使用 dbus-launch 启动 Chrome(兼容性好)

在 SSH 中启动 Chrome 时加上 dbus-launch,可自动连接会话:

1
dbus-launch google-chrome-stable

⚠️ 不推荐的做法

  • 禁用密钥环或删除 ~/.local/share/keyrings 会导致密码丢失;
  • 取消自动登录对 SSH 无帮助。

✅ 一句话总结

SSH 远程登录后运行 Chrome 提示密钥 → 使用 --password-store=basic 参数跳过密钥环即可。

250728-docker-run一次性运行的 Docker 容器命令-docker运行Images-运行后销毁

一次性运行的 Docker 容器命令sudo docker run --rm openjdk:21 cat /etc/os-release

1
2
sudo docker run --rm openjdk:21 cat /etc/os-release
sudo docker run --rm mongo ls /data/configdb

命令拆解

1
sudo docker run --rm openjdk:21 cat /etc/os-release
部分 作用
sudo 以管理员权限运行(避免权限不足)
docker run 启动一个新的容器
--rm 容器运行完后自动删除(不保留临时容器)
openjdk:21 使用官方的 OpenJDK 21 镜像作为基础环境
cat /etc/os-release 容器启动后执行的命令:打印操作系统版本信息

🎯 它做了什么?

  1. 拉取(或复用)openjdk:21 镜像(基于某个 Linux 发行版,通常是 Debian 或 Ubuntu)。
  2. 启动一个临时容器。
  3. 在容器里执行 cat /etc/os-release,输出该镜像内操作系统的版本信息(比如是 Ubuntu 22.04 还是 Debian 12)。
  4. 输出完后,容器自动销毁,不会残留任何痕迹