-
克星现在更常见,未来还会有更多的靶心。 一般来说,其他的不是我们的首选。
Alpine 是众多 Linux 发行版之一,如 CentOS、Ubuntu、ArchLinux 等,但它只是一个发行版的名称,据说小巧且安全,拥有自己的软件包管理工具 APK。
阿尔卑斯山非常非常小:100米与5米!
官方阿尔卑斯山图像的文档:
但Alpine的规模小是有代价的,当它不容易时,它可能会给你带来麻烦!
除了插入一些不必要的软件外,Alpine Linux 还特别重要,因为它使用 Musl libc 而不是著名的 glibc。
Musl libc 包含与 glibc 相同的标准动力罩液体能量,但问题是 glibc 还具有标准功能之外的扩展功能,并且由于 glibc 的历史地位和市场份额,glibc 的扩展功能实际上得到了广泛的应用! 有很多软件使用 glibc 扩展进行编译、安装和运行,因此它运行在 glibc 的基础颈部,但不能使用 musl libc 运行在 alpine 上。
此外,Alpine没有像Red Hat或Canonical这样的大公司的维护支持,而且软件包的数量比这些发行版少得多(如果你看一下开箱即用的默认存储库,Alpine只有10,000个软件包,而Ubuntu,Debian和Fedora都有超过50,000个软件包)。 )
如果实在不想折腾,可以选择折衷的镜像 镜像一般基于 Debian 和 Glibc,除了很多非必要的包外,删除都针对大小进行了优化。 如果在构建过程中需要编译器,则 slim 映像不适合,但在大多数情况下,可以使用 slim 作为基础映像。
-
创建映像:
1. 准备需要运行的JDK和Spring Boot小项目。
将jdk包解压到dockerfile所在目录下,将spring boot项目拷贝到dockerfile所在目录下
2. 创建一个dockerfile,内容如下:
指定基础镜像 centos
指定维护者信息 yaolin
复制JDK并配置JDK环境。
公开端口 8080。
指定执行以启动 Spring Boot 小项目。
3. 编译并生成镜像 (..)表示当前路径)。
docker build -t yaolin/websocket .
4. 查看生成的图像。
docker images
5. 创建一个容器并运行它。
docker run -p :8080:8080 --name websocket yaolin/websocket
您可以看到容器运行正常并打印日志,但这种运行方式会抢占终端。 请改用 docker start websocket 开始:
6.访问(在物理机上,不在虚拟机上,这里我的Spring Boot小项目好像有点问题,报了500错误,但是可以访问,表明容器已经正常运行了Spring Boot项目)。