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

相关推荐
运维大师10 小时前
【Linux运维极简教程】04-进程与服务管理
linux·运维
keke.shengfengpolang10 小时前
自动化考什么证书对就业有帮助?
运维·自动化
源码学社10 小时前
Spug 3.0 Ubuntu 22.04 Docker 部署文档
linux·ubuntu·docker·windows安装·spug
雾沉川11 小时前
Netcatty 开源 SSH 客户端完整技术使用教程
运维·开源·ssh
石小千11 小时前
修改Docker Engine 存储路径
运维·docker·容器
珠海西格电力11 小时前
西格电力零碳园区管理系统:核心功能全解析,赋能园区低碳智能化落地
大数据·运维·网络·人工智能·信息可视化·能源
深盾科技_Virbox11 小时前
软件授权工具静默安装实践
java·运维·数据库·安全·软件需求
qq_4523962311 小时前
第二篇:《Jenkins 从零搭建:安装、配置与第一个 Pipeline》
java·运维·jenkins
Hui Baby11 小时前
kubeconfig 文件生成和赋权
运维
A_humble_scholar11 小时前
Linux(十七)深入多线程编程:同步原语与实战指南
linux·运维·c++