企业级docker应用注意事项

现在很多企业使用容器化技术部署应用,绕不开的docker技术,在生产环境docker常用操作总结。参考:https://juejin.cn/post/7259275893796651069

1. 尽可能使用官方镜像

在docker hub 官方 使用后面带有 DOCKER OFFICIAL IMAGE 标签的镜像,有更好的安全性保障。

2. 使用镜像指定版本

bash 复制代码
FROM ubuntu

默认使用latest标签,拉取最新镜像,镜像稳定性以及兼容性可能有问题,需要经过充分测试,才可以使用。

3. 构建镜像使用缓存,提高构建效率

bash 复制代码
FROM node:current-alpine3.18
WORKDIR /app
COPY myapp /app
RUN npm install --production
CMD ["node", "src/index.js"]

1)镜像每一层中都会被Docker缓存。当重新构建镜像时,如果Dockerfile没有更改,Docker将只使用缓存的层来构建镜像。

2)在 Docker 中一旦一个层发生变化,所有后续或下游的层也必须重新创建。

3)在 Dockerfile 中,将我们的命令按照从最不经常变化到最经常变化的顺序进行排序,以利用缓存并优化镜像构建速度。

4. docker的多阶段构建

一般来讲,

第一阶段:用于构建服务的编译环境,生成二进制文件

第二阶段:运行二进制文件,加载运行期间的配置文件以及其他依赖文件(例如证书)

5. 使用最低权限的用户

Dockerfile没有指定用户时,默认使用root用户运行,在容器内使用root用户运行应用程序将使攻击者更容易提升主机的权限。可以使用普同样用户权限。

bash 复制代码
...

# 创建demo 组和 demo 用户
RUN groupadd -r demo && useradd -g demo demo 
​
# 设置 demo 用户的权限
RUN chown -R demo:demo /app
​
# 切换用户
user demo
​
cmd node index.js

参考:https://juejin.cn/post/7259275893796651069

相关推荐
夜之眷属5 分钟前
服务器被挖矿病毒入侵的排查与清理实录
运维·服务器
极客先躯9 分钟前
高级java每日一道面试题-2026年01月20日-实战篇[Docker]-如何实现镜像的跨区域复制?
java·运维·docker·容器·架构图
韩振方25 分钟前
为什么服务显示占了 8G,实际内存却没那么多?
运维
xixiaoyunya2 小时前
虚拟机备份怎么做:镜像级与文件级搭配的完整实操方案
linux·运维·网络
阿明62 小时前
进程替换【Linux】
linux·运维·服务器
sunoo-2292 小时前
【嵌入式Linux驱动学习】Day1-Day2 全流程梳理:环境搭建→U-Boot→内核→根文件系统→驱动基础
linux·运维·驱动开发·笔记·学习·阿里云·恩智浦
YonyouHRSaaS2 小时前
从安全、信创、运维三方面看,人力资源管理系统哪种部署方式更适合企业HR?
运维·安全·hr系统·人力资源管理系统·hr saas·人事管理系统
倔强的石头1063 小时前
【Linux指南】动静态库系列(十二):库工程发布与错误排查:从能跑到可维护
linux·运维·服务器
wdfk_prog3 小时前
LWIP教程 03:从 `low_level_input()` 到 `pbuf_free()`——`pbuf` 的数据视图、Chain 与引用计数
运维·网络·笔记·学习
掉进电商坑三年没爬出来的东叔3 小时前
云服务器搭建个人网站实战:从零到公网访问,含域名HTTPS
运维·服务器·https