Docker 容器化部署与镜像管理实战

刚接触 Docker 的时候,我也觉得这东西挺玄乎的。其实说白了,Docker 就是帮你把应用和它需要的所有东西打包在一起,走到哪都能跑。今天咱们就聊聊怎么把应用容器化,还有镜像怎么管理。

先说最基础的,你得有个 Dockerfile。这玩意儿就是个文本文件,告诉 Docker 怎么构建你的应用镜像。假设你有个 Python 应用,Dockerfile 大概长这样:从 python:3.9 基础镜像开始,设置工作目录,把代码拷贝进去,安装依赖,最后指定启动命令。写的时候记住,每一层都会生成一个缓存层,所以把不常变的步骤放前面,经常变的放后面,这样构建能快不少。

构建镜像用 docker build 命令,记得给镜像打个有意义的标签。别只用 latest,过两个月你都不知道这镜像里是啥代码。用版本号或者 git 提交哈希,比如 myapp:v1.2.3 或者 myapp:abc1234,这样回滚的时候心里有底。构建完了用 docker images 看看,本地有哪些镜像,大小多少,心里要有数。

镜像管理有个好习惯,定期清理不用的。docker system prune 能删掉悬空镜像和停止的容器,但执行前确认一下,别把还要用的东西删了。生产环境建议用私有仓库,比如阿里云容器镜像服务或者自建 Harbor,别把代码直接推 Docker Hub 公开仓库。

部署的时候,用 docker run 启动容器,但别手动敲一长串参数,容易出错还不好维护。写个 docker-compose.yml 文件,把服务、网络、卷都定义清楚。这样下次部署或者同事接手,一条 docker-compose up -d 就搞定了。记得把数据目录挂载出来,容器删了数据还在,这是血泪教训。

日志也要重视,默认容器日志存在 json 文件里,时间长了占磁盘。要么配置日志轮转,要么把日志打到外面去。监控方面,至少看看容器是不是活着,docker ps 能看到状态,生产环境建议上 Prometheus 加 Grafana。

最后说个实战场景,你要部署个 WordPress。先拉取 wordpress 和 mysql 镜像,写个 compose 文件定义两个服务,配置好环境变量和端口映射,volumes 把 wp-content 和数据库数据持久化。启动后访问浏览器,几步安装就完成了。以后要升级,改一下镜像版本号,重新 up 就行,回滚也简单。

Docker 这东西,用熟了你会发现离了它还真不习惯。关键是多动手,自己折腾几遍,比看十篇教程都管用。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇