企业级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

相关推荐
YH行业报告分析2 小时前
2026电缆铺设设备市场:自动化敷设与电网升级驱动增长
运维·自动化
Wang's Blog2 小时前
Java 项目部署之 Docker工具快速入门: Docker 是什么以及它如何解决部署环境问题
java·开发语言·docker
ajassi20003 小时前
AI语音智能体开发日记(十八)智能体服务器xiaozhi-esp32-server源码部署指南
运维·服务器·人工智能·ai·ai编程
‎ദ്ദിᵔ.˛.ᵔ₎3 小时前
linux 进程信号(下)
linux·运维·服务器
Mikko73 小时前
Linux 磁盘满了但 du 找不到?LVM 扩容 df 不变?fstab 写错开不了机?三台真机实测磁盘排查
linux·运维·centos
蓝胖的四次元口袋3 小时前
Jenkins知识梳理(2)
运维·jenkins
yumgpkpm3 小时前
Acceldata ODP 3.3.6.4 vs CDP Private Cloud Base 7.3.2 对比
大数据·运维·服务器·hadoop·华为·zookeeper·hbase
AIGC大时代3 小时前
LLM Agent 执行沙箱闸门:失败含义与当天最小实验
docker·沙箱·闸门·bubblewrap·llm agent
Liuqy-053 小时前
特殊进程——孤儿、僵尸、守护进程
linux·运维·服务器
考研保研资料分享4 小时前
自动化控制保研经验合辑:上交夏令营、北工大预推免与跨专业面试复盘(2025)
运维·面试·自动化