当前位置: 首页 > article >正文

Docker 的安装部署与基本使用

目录

Docker 安装与部署

卸载旧版本

更新 apt 包索引

添加 Docker 的官方 GPG 密钥

使用以下指令设置稳定版仓库

更新 apt 包索引

安装 Docker Engine-Community

检查版本

Docker 的基本使用

Dockerfile 常见构建指令

Docker 镜像优化方案

Docker 跨平台构建

多阶段构建


Docker 安装与部署

卸载旧版本

Docker 的旧版本被称为 docker,docker.io 或 docker-engine 。如果已安装,请卸载它们:

apt-get remove docker docker-engine docker.io containerd runc

更新 apt 包索引

apt update

apt -y install apt-transport-https ca-certificates curl software-properties-common

添加 Docker 的官方 GPG 密钥

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

使用以下指令设置稳定版仓库

add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

更新 apt 包索引

apt update

安装 Docker Engine-Community

apt -y install docker-ce  docker-ce-cli containerd.io

检查版本

docker -v

Docker 的基本使用

  • 运行容器 docker run -e 传递环境变量 -v 持久化存储

  • 列出容器 docker ps -a 列出当前机器上所有的容器 -q 只列出容器的 id

  • 查看容器详情 docker inspect 容器id或者容器名称

  • 停止容器 docker stop / docker kill

  • 删除容器 docker rm -f(强制删除)

  • 进入容器 docker exec -it /bin/bash

  • 暂停容器 docker pause

  • 从暂停中恢复 docker unpause

  • 启动容器 docker start

  • 重启容器 docker restart

  • 限制 cpu docker run --cpus

  • 限制内容 docker run -m

  • 拉取镜像 :docker pull

  • 列出镜像 :docker image ls

  • 查看镜像 : docker image inspect

  • 删除镜像 :docker rm -f

  • 给镜像打标签 :docker tag source_image dest_image

  • 上传镜像 :docker push

Dockerfile 常见构建指令

  • FROM:指定基础镜像,所有后续操作都基于这个镜像。

  • RUN:执行命令,通常用于安装软件包或执行脚本。

  • CMD:容器启动时默认执行的命令。

  • EXPOSE:声明容器运行时监听的端口,不会发布端口,只是作为文档说明使用。

  • ENV:设置环境变量。

  • ADD:将文件、目录或远程文件URL添加到容器中。

  • COPY:复制本地文件或目录到容器中,相比 ADD,COPY 不会解压缩归档文件或处理 URL。

  • ENTRYPOINT:配置容器启动时运行的可执行文件。

  • VOLUME:创建一个可以从本地主机或其他容器挂载的挂载点。

  • USER:指定运行容器时的用户名或 UID。

  • WORKDIR:设置工作目录,即容器内部的当前目录。

  • ARG:定义构建时的变量,可以在构建时通过 --build-arg 指定。

  • LABEL:为镜像添加元数据,通常用于描述信息。

  • STOPSIGNAL:设置停止容器时使用的系统调用信号。

  • HEALTHCHECK:定义如何检查容器是否健康。

    • -- interval 检查周期

    • -- retries 重试次数

    • -- timeout 超时时间

Docker 镜像优化方案

  1. 使用精简的基础镜像: 选择一个精简的基础镜像,如 Alpine Linux,可以显著减小镜像大小。

  2. 合并 RUN 指令: 多个 RUN 指令可以合并为一个,以减少镜像层数,加速构建和分发。

  3. 利用缓存: 合理安排 Dockerfile 中的指令顺序,使得不会频繁变动的层可以被缓存。

  4. 清理工作目录: 使用 RUN apt-get clean 或类似的命令清理临时文件和缓存,减小镜像大小。

  5. 删除不必要的文件: 在构建过程中删除不需要的文件和目录,例如 .dockerignore 文件中指定的文件。

  6. 使用多阶段构建: 使用多阶段构建来减小最终镜像大小,编译时使用一个包含所有工具的基础镜像,最终只保留编译产物。

  7. 优化软件包管理器: 使用 yumapt-get 的参数来减小软件包管理器安装软件后产生的缓存和临时文件。

  8. 使用更小的软件包: 选择更小的软件包或替代品,例如使用 busybox 作为轻量级的一站式解决方案。

  9. 使用体积优化工具: 使用如 DockerSlimdive 等工具来帮助分析和优化镜像大小。

  10. 避免使用 ADD: 尽量使用 COPY 指令代替 ADD,因为 ADD 可以执行解压缩操作,可能会增加镜像大小。

  11. 优化镜像层: 使用 && 连接命令,确保它们在同一个层中执行,减少层数。

  12. 使用 .dockerignore 文件: 创建 .dockerignore 文件来排除不需要添加到镜像的文件和目录。

  13. 移除设置环境变量的不必要层: 如果环境变量不会影响后续层的构建,可以将其移除以减少层数。

  14. 使用精简的操作系统: 如果可能,使用精简版的操作系统,如 Debian 的 slim 版本。

  15. 避免安装不必要的软件包: 仔细审查 RUN 指令中安装的软件包,只安装需要的软件包。

  16. 使用镜像标签管理: 使用标签来管理不同版本的镜像,确保使用的是优化过的版本。

  17. 定期更新和优化 Dockerfile: 随着时间的推移,持续更新和优化 Dockerfile,以利用 Docker 引擎和基础镜像的改进。

Docker 跨平台构建

必须在 Dockerfile 当中兼容跨平台的包

配置 Docker 跨平台构建

docker run --privileged --rm tonistiigi/binfmt --install all
{

   "features":{

       "containerd-snapshotter":true

   }

}

systemctl restart docker

多阶段构建

在一个 Dockerfile 中可以出现两个及以上的 FROM ,每一个 FROM 为一个阶段 基本上只有 go 或者 c 语言的构建才会使用 多阶构建


http://www.kler.cn/news/319596.html

相关文章:

  • Apache CVE-2021-41773 漏洞攻略
  • What is the new in C#11?
  • 验收测试:从需求到交付的全程把控!
  • BERT训练环节(代码实现)
  • 通过docker启动ElasticSearch后为ElasticSearch设置用户和密码
  • 分享课程:VUE数据可视化教程
  • vant_UI的选择时间小组件封装
  • excel VBA进行间比法设计
  • 运行python程序
  • 初识前端监控
  • C++如何进阶? -- 整理一些学习资料
  • 基于stm32物联网身体健康检测系统
  • LeetCode 909. 蛇梯棋
  • nlohmann json:读写json文件
  • c++优先级队列自定义排序实现方式
  • SDK3(note上)
  • NLP 文本分类任务核心梳理
  • Selenium点击元素的方法
  • 【深入学习Redis丨第六篇】Redis哨兵模式与操作详解
  • 电脑自带dll修复在哪里,dll丢失的6种解决方法总结
  • 免费与付费代理IP工具的优缺点分析
  • 遗忘的数学(拉格朗日乘子法、牛顿法)
  • (16)docker自动镜像打包脚本
  • 【Power Query】追加查询(动态列,动态路径)
  • 微软宣布弃用WSUS,企业用户尽早准备替换方案
  • [RabbitMQ] RabbitMQ介绍,安装与快速上手
  • 虚拟机开启网络代理设置,利用主机代理访问国外资源
  • Vue3:toRaw与markRaw
  • LeetCode 210. 课程表 II
  • yum 集中式安装 LNMP