Docker 容器化部署与镜像管理入门

刚接触 Docker 的时候,你可能会觉得它神秘又复杂。其实把它想象成一个打包工具就好,把你的应用和它需要的所有东西打包在一起,走到哪里都能运行。

先从安装说起。在 Linux 系统上,一行命令就能装好 Docker。安装完成后,运行 docker run hello-world,看到欢迎信息就说明一切正常。这时候你已经跑起了第一个容器。

容器的核心是镜像。镜像是只读的模板,容器是镜像运行起来的实例。你可以把镜像理解成光盘,容器就是光盘放进光驱后运行起来的程序。要获取镜像,用 docker pull 命令,比如 docker pull nginx 会拉取官方的 Nginx 镜像。拉取完成后,docker images 能看到本地所有镜像。

自己制作镜像需要写 Dockerfile。这是一个简单的文本文件,第一行写 FROM 指定基础镜像,比如 FROM node:18。接着用 WORKDIR 设置工作目录,COPY 把代码复制进去,RUN 执行安装命令,最后 EXPOSE 声明端口,CMD 指定启动命令。写好后,在 Dockerfile 所在目录运行 docker build -t myapp . 就能生成自己的镜像。这里的 myapp 是你给镜像起的名字,后面的点代表当前目录。

镜像管理有几个常用操作。docker rmi 删除不需要的镜像,docker tag 给镜像打标签方便版本管理,docker push 把镜像推到仓库让别人也能拉取。记得推送前要先 docker login 登录仓库。

容器运行起来后,docker ps 查看正在运行的容器,docker stop 停止容器,docker rm 删除容器。如果想进入容器内部调试,docker exec -it 容器 ID bash 就能进去。容器里的日志用 docker logs 查看,排错时非常有用。

实际部署时,推荐用 docker-compose。写一个 docker-compose.yml 文件,可以定义多个容器怎么一起运行。比如 Web 应用加数据库,一个文件就能说清楚它们的关系。运行 docker-compose up -d 后台启动所有服务,docker-compose down 一键停止清理。

数据持久化是个重点。容器删了数据就没了,所以要用卷。创建卷用 docker volume create,运行时用 -v 参数挂载到容器里。这样即使容器重建,数据依然安全。

网络方面,Docker 默认给每个容器分配 IP。如果想让容器之间能互相访问,创建自定义网络,启动容器时指定 –network 参数。需要对外服务的,用 -p 映射端口,比如 -p 8080:80 把容器的 80 端口映射到宿主机的 8080。

最后说个小技巧,定期用 docker system prune 清理不用的东西,释放磁盘空间。生产环境建议固定镜像版本,别用 latest 标签,避免更新导致意外。

Docker 就这么简单。多动手试几次,你很快就能熟练。现在把你的应用打包成镜像,让它随时随地都能跑起来。

暂无评论

发送评论 编辑评论

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