惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Privacy International News Feed
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
Recorded Future
Recorded Future
I
InfoQ
aimingoo的专栏
aimingoo的专栏
Microsoft Security Blog
Microsoft Security Blog
MongoDB | Blog
MongoDB | Blog
Vercel News
Vercel News
D
DataBreaches.Net
Microsoft Azure Blog
Microsoft Azure Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
A
About on SuperTechFans
博客园 - 聂微东
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 司徒正美
博客园 - 三生石上(FineUI控件)
M
MIT News - Artificial intelligence
H
Help Net Security
B
Blog
J
Java Code Geeks
Y
Y Combinator Blog
Martin Fowler
Martin Fowler
IT之家
IT之家
WordPress大学
WordPress大学
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 叶小钗
博客园_首页
The Cloudflare Blog
爱范儿
爱范儿
Hugging Face - Blog
Hugging Face - Blog
博客园 - Franky
小众软件
小众软件
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Check Point Blog
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
U
Unit 42
雷峰网
雷峰网
P
Proofpoint News Feed
有赞技术团队
有赞技术团队
V
Visual Studio Blog
人人都是产品经理
人人都是产品经理
The Register - Security
The Register - Security
罗磊的独立博客

博客 on 打工人日志

k8s RKE2 cilium L2 + envoy gateway 安装配置 k8s RKE2 vSphere 存储配置 OpenClaw 全能指南:从安装到进阶自动化实战 (2026 最终版) Kubernetes — skywalking + banyanDB APM监控部署 Kubernetes — promtail + loki + grafana 日志系统部署 k8s master 节点 Unauthorized Kubernetes — metalLB + Traefik 部署 Kubernetes — SSL 证书自动更新 Kubernetes — RKE2 + kube-vip + cilium 部署 使用TLSv1.3 升级nginx和openssl Proxmox VE(PVE) 更新到最新版本 kindle 邮件发送失败,错误代码E999 metallb + ingress-nginx + argocd 本地部署 iStoreOS(旁路由)使用openclash实现dns劫持 异常流量分析:图片库服务黑客入侵 openwrt 硬盘扩容 搭建ip地址检索服务 Kubernetes — k8s 手动安装 1.17.9 SELinux 问题:导致端口无法创建,无法访问 【福利】免费!本地部署!去除视频中移动的物体 通知:《打工人日报》迁移到独立板块 KyBook 3 | calibre-web - IOS系统最佳图书伴侣 Tmux 安装和使用教程 DockerHub 加速镜像部署 - 使用cloudflare 代理 docker的零停机部署 SD-webui 批量处理图片 ubuntu 安装 ComfyUI ubuntu 安装 stable-diffusion-webui 测试策略:微服务架构 单元测试:测试单元质量提升 端到端测试:模拟用户体验 Kubernetes — containerd 安装和部署 CI/CD 可观察性-基于grafana Argo cd 安装和部署 linux服务器进程打开文件过多导致服务异常 使用 ElasticSearch Curator 7天定期删除日志 sonarqube docker安装和配置 SSH 通过 443 端口连接 GitHub iOS 17 「待机显示」适配普通 iPhone(非 Pro/Max),屏幕在充电时常亮 GNU/Linux 一键更换系统软件源脚本 解决Elasticsearch索引只读(read-only) 【福利】埃隆·马斯克传 [沃尔特·艾萨克森] 在线下载 【破解】小鹏P5和小鹏G9开启adb和网络adb Kubernetes — kubecost 分析 Kubernetes 成本 3D Gaussian Splatting:3D模型渲染 Linux 系统收包流程以及内核参数优化 2023亚运会电竞门票民购买指南(报名+抽签) Vue3 + vite + nginx项目部署后404问题 大麦抢票辅助软件(福利 TFBOYS十年之约演唱会 2023 全机位 视频) 黑群晖最新安装教程 Ansible部署ceph集群 最好的微信朋友圈集赞神器-福利推荐 推荐一下 容器云资源 2010年的天涯神贴聊房价 如何礼貌回绝不合理的需求 nginx 配置和编译 github 国内代理访问下载 使用scrapy-redis实现增量爬取 逆境和成长-2022年终总结 优雅的使用Conda管理python环境 Jenkins 编译Android apk 流水线 Kubernetes — 更新证书 shell功能脚本集合 Nexus3 使用和部署 githubAction set-output弃用错误 Kubernetes — Rook云存储介绍和部署 Kubernetes — 基于K8S搭建Ceph分布式存储 Kubernetes — 探针和生命周期 Kubernetes — 开放标准(OCI、CRI、CNI、CSI、SMI、CPI)概述 kubernetes 部署插件 (Flannel、Web UI、CoreDNS、Ingress Controller) Cloudflare Zero Trust 内网穿透 k8s CNI 问题 连接认证失效 k8s.gcr.io国内无法连接解决方法 headscale 部署使用 羊了个羊小程序 破解通关 K8S 问题排查:cgroup 内存泄露问题 RocketMQ k8s部署 4主4从集群 docker 问题处理 kubernetes 存储 linux服务器 删除空间却未释放 kubernetes 从1.23.x 升级到 1.24.x 编写 kubernetes 资源描述文件 nginx ssh-key connection exception kubernetes manual expansion VSCode插件推荐=> Code Runner ant build.xml 编写 kubernetes 调度过程 记录一次上门打散工 k8s本地联调神器kt-connect Ant中如何添加第三方jar包依赖 OpenELB:让k8s私有环境对外暴露端口 linux 网络测速 安装 docker 出现 ERROR: Unsupported distribution 'ol' 问题 logrotate 日志滚动的使用 nginx 编译参数详解 nginx 重写规则 rewrite模块 nginx.conf 配置文件详解 rsync 文件同步 163企业邮箱设置教程 2021年第50周记
docker进阶使用
2021-12-09 · via 博客 on 打工人日志

docker 进阶使用

dockerfile 和 docker compose 的配置

Dockerfile 使用

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

例子:

1    FROM nginx
2    RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html

保存 Dockerfile 文件并在本地路径执行

1    docker build -t nginx:v1-test .
2    docker run -name docker run --name nginx-test -d  -p 8080:80 nginx:v1-test

浏览 nginx 页面确认更新内容

curl 127.0.0.1:8080
输出:
这是一个本地构建的nginx镜像

Docker 命令详解

COPY

复制指令,从上下文目录中复制文件或者目录到容器里指定路径。

1    COPY [--chown=<user>:<group>] <源路径1>...  <目标路径>
2    COPY [--chown=<user>:<group>] ["<源路径1>",...  "<目标路径>"]

<源路径>:源文件或者源目录,这里可以是通配符表达式,其通配符规则要满足 Go 的 filepath.Match 规则。例如:

1    COPY hom* /mydir/
2    COPY hom?.txt /mydir/

FROM

FROM:定制的镜像都是基于 FROM 的镜像

RUN

RUN:用于执行后面跟着的命令行命令

shell:

1    RUN <命令行命令>
2    # <命令行命令> 等同于,在终端操作的 shell 命令。

exec:

1    RUN ["可执行文件", "参数1", "参数2"]
2    # 例如:
3    # RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline

ADD

ADD 指令和 COPY 的使用格类似

ADD 的优点:在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径>。

ADD 的缺点:在不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。具体是否使用,可以根据是否需要自动解压来决定。

CMD

类似于 RUN 指令,用于运行程序,但二者运行的时间点不同:

  1. CMD 在 docker run 时运行。
  2. RUN 是在 docker build。

Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效。

1    CMD <shell 命令>
2    CMD ["<可执行文件或命令>","<param1>","<param2>",...]
3    CMD ["<param1>","<param2>",...]  # 该写法是为 ENTRYPOINT 指令指定的程序提供默认参数

通过 dockerfile 文件封装 hugo

dokcerfile 文件

1    FROM nginx:1.21
2    COPY public/ /usr/share/nginx/html

docker.sh 文件

 1    #/!bin/bash
 2    echo "删除旧的docker"
 3    docker ps
 4    docker stop nginx-hugo
 5    docker rm nginx-hugo
 6    docker rmi nginx:hugo
 7    echo "生成新的docker"
 8    hugo -t LoveIt -D
 9    docker build -t nginx:hugo .
10    docker run --name nginx-hugo -d -p 8080:80 nginx:hugo
11    echo "显示端口"
12    netstat -lntp

执行脚本: