deepwzh的技术笔记
  • Golang
  • Python
  • Cpp
杂项
前端开发
  • 计算机网络
  • 操作系统
  • 数据库
云原生
Devops
AIGC
关于作者
  • Golang
  • Python
  • Cpp
杂项
前端开发
  • 计算机网络
  • 操作系统
  • 数据库
云原生
Devops
AIGC
关于作者
  • 云原生
  • Helm
  • Etcd
  • harbor
  • 学习资料
  • Fass
  • argo

    • argo
    • Argo cli 用法
  • Docker

    • Docker
    • docker 镜像打包
    • docker 镜像加速
    • 常用命令
    • 进阶 docker 资料
    • distribution/distribution
    • Docker
    • dockerfile 与镜像构建
  • K8s

    • K8s
    • 日志收集
    • 服务网格
    • 常用命令
    • 污点与容忍度
    • Kubectl
    • 应用发布
    • 存储
    • Cert-Manager
    • K8s Pod 生命周期与健康检查
    • 负载均衡器
    • 压力节点驱逐
    • Helm chart
    • 准入控制器

dockerfile 与镜像构建

Dockerfiles 与镜像构建

Docker 镜像相关命令

镜像构建

docker built -t docker-image-name . -f hello.Dockerfiles

镜像推送

docker tag docker-image-name [dockerhub.example.com/lib/docker-image-name:v1.0.0](http://dockerhub.example.com/lib/docker-image-name:v1.0.0)[
](http://dockerhub.example.com/lib/docker-image-name:v1.0.0)docker login [dockerhub.example.com/lib/docker-image-name](http://dockerhub.example.com/lib/docker-image-name:v1.0.0)[
](http://dockerhub.example.com/lib/docker-image-name:v1.0.0)docker push [dockerhub.example.com/lib/docker-image-name:v1.0.0](http://dockerhub.example.com/lib/docker-image-name:v1.0.0)

Dockerfile 模板

FROM image_name:tag

ADD . /dir_in_container
COPY file1 /dir_in_container/file1

RUN touch /dir_in_container/file2 \
   && mkdir -p /dir_in_container/datadir
   
workdir /dir_in_container

CMD ["-c", "echo", "Hello World"]
**ENTRYPOINT ["/bin/bash"]**

常用模板

debian 系统

FROM debian:latest

RUN sed -i "[email protected]@mirrors.163.com@g" /etc/apt/sources.list \
  && apt-get install -y git \
  && apt-get clean \
  && echo "Hello World"  

workdir /data

CMD ["-c", "echo", "Hello World"]
**ENTRYPOINT ["/bin/bash"]**

Ubuntu 系统

FROM debian:latest

RUN sed -i "[email protected]@mirrors.163.com@g" /etc/apt/sources.list \
  && apt-get install -y git \
  && apt-get clean \
  && echo "Hello World"  

workdir /data

CMD ["-c", "echo", "Hello World"]
**ENTRYPOINT ["/bin/bash"]**

alpine 系统(体积较小)

FROM alpine:latest

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories \
  && apk add --no-cache git \
  && echo "Hello World" 
workdir /data

CMD ["-c", "echo", "Hello World"]
**ENTRYPOINT ["/bin/bash"]**

带有 docker,helm 的镜像

// 替换镜像源 [debian | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
](https://mirrors.tuna.tsinghua.edu.cn/help/debian/)// 安装docker [Install Docker Engine on Debian | Docker Documentation
](https://docs.docker.com/engine/install/debian/)// 安装helm [Helm | 安装Helm](https://helm.sh/zh/docs/intro/install/)
# 创建一个远程服务器
docker context create example-server \
  --description "connection to example server" \
  --docker "host=tcp://your-remote-server.org:2375"

# 指定一个远程服务器运行docker命令
docker --context example-server ps

# 或者切换一个远程服务器
docker context use example-server
docker ps

在 Windows 中使用 docker-cli 连接远程的 docker-engine (非 Docker for Windows) – 川 (netcore.run)

常用镜像

python3


os
版本
备注
python:3.9-alpine
alpine
3.9
体积较小,越xxMB
python:3.9-slim


体积较小,越xxMB




参考资料

Dockerfile 中的 CMD 与 ENTRYPOINT - sparkdev - 博客园 (cnblogs.com)

官方 Dockerfile reference | Docker Documentation

容器服务 镜像分层最佳实践-最佳实践-文档中心-腾讯云 (tencent.com)

Prev
Docker