Docker-DockerFile制定镜像

本文已收录于专栏
《中间件合集》

目录

  • 概念说明
    • Docker
    • DockerFile
  • 提供服务
  • 指令解析
  • 应用实例
  • 常用命令
  • 总结提升

概念说明

Docker

 &emspDocker是一种开源的容器化平台,它可以将应用程序及其依赖项打包到一个独立的、可移植的容器中,以实现快速部署和跨平台的运行。而Dockerfile则是用于定义Docker镜像的文本文件,其中包含了构建镜像所需的指令和配置。
在这里插入图片描述

DockerFile

  Dockerfile是用于定义镜像构建过程的文本文件。它由一系列指令组成,每个指令对应一个操作。常见的指令包括FROM、RUN、COPY、CMD等,它们用于指定基础镜像、运行命令、复制文件等操作。
  DockerFile是一个用来编写Docker镜像的文本文件,文本内容包含了一条条构建镜像所需要的指令和说明。DockerFile就想要一个脚本文件一样。把我们想要执行的操作放到文本文件里,一键执行。这样我们就可以复用这个DockerFile文件了。在别的服务器上执行这个文件也就会产生一个一模一样的Docker镜像。

提供服务

  • 「 Dockerfile最佳实践」:编写高质量的Dockerfile需要遵循一些最佳实践。例如,使用多个RUN指令来避免不必要的镜像层、使用.gitignore文件来排除不必要的文件、使用ENTRYPOINT指令来定义容器启动时的命令等。
  • 「 构建和管理镜像 」:使用docker build命令可以根据Dockerfile构建镜像。构建过程中可以使用参数来定制镜像的配置,如设置环境变量、指定工作目录等。构建完成后,可以使用docker push命令将镜像推送到仓库,并使用docker pull命令从仓库中获取镜像。
  • 「 运行和管理容器 」:使用docker run命令可以根据镜像创建并运行容器。可以通过参数来配置容器的网络、端口映射、环境变量等。运行容器后,可以使用docker exec命令在容器内部执行命令,使用docker logs命令查看容器日志,使用docker stop命令停止容器等。
  • 「 Docker生态系统和实用工具 」:Docker拥有丰富的生态系统和实用工具,可以帮助开发人员更好地使用和管理Docker。一些常用的工具包括Docker Compose用于定义和管理多容器应用、Docker Swarm用于构建和管理集群、Portainer用于可视化管理Docker等。

指令解析

  Dockerfile是用于定义镜像构建过程的文本文件。它由一系列指令组成,每个指令对应一个操作。常见的指令包括FROM、RUN、COPY、CMD等,它们用于指定基础镜像、运行命令、复制文件等操作。
1.基础镜像:FROM(制定基础镜像) 镜像的名字:版本号

FROM centos:6.8

2.制作镜像操作指令:安装一些依赖

RUN yum install openssh-server -y

3.容器启动后执行的事情

CMD ["参数1","参数2"]

4.ENTRYPOINT:容器启动后执行的事情

ENTRYPOINT["参数1","参数2"]

5.其他变量

ADD:将宿主机的文件添加到容器内,有自动解压的功能
COPY:将宿主机的文件添加到容器内,单纯复制文件
WORKDIR:设置当前工作目录,切换路径
VOLUME +路径 设置存储卷,挂载主机目录(将容器内的指定路径,在容器运行时,该目录自动挂载为匿名卷,任何向该目录中写入的数据的操作,都不会被容器记录,保证了容器存储层的无状态理念)
EXPOSE:指定对外的端口
ENV 变量名=“值” 通过$NAME 就可以直接获取变量值了,(容器间可以相互获取) 定义环境变量
ARG 定义环境变量
USER 用户身份 :用户切换用户身份  例如:USER admin切换为root权限

6.注意事项
  ENV是设置环境变量,定义了环境变量,那么在后续的指令中,就可以使用这个环境变量。而ARG是构建参数,与 ENV 作用一致。不过作用域不一样。ARG 设置的环境变量仅对 Dockerfile 内有效,也就是说只有 docker build 的过程中有效,构建好的镜像内不存在此环境变量。

应用实例

在这里插入图片描述

常用命令

docker stats 查看cpu的状态
docker stop +镜像ID 停止正在运行的镜像
docker ps 查看正在运行的镜像
docker run -d(后台运行) -p(端口映射,宿主机端口:容器端口) -e(运行的限制条件 例如,ES_JACA_OPTS=“-Xms64m(最小运行内存) -Xms512m(最大运行内存)”)
docker image ls 查看本地已经安装的镜像文件
docker rmi(i为image的缩写) +镜像ID 删除本地已经安装好的镜像文件
docker rm +容器ID 删除容器
docker info | grep Root 查看docker 镜像的存储路径
docker run -it(表示开启一个交互式的终端) 容器名 bash(解释器) 运行镜像进入容器
docker exec -it 容器名 bash 进入正在运行的容器内
exit 退出镜像
docker image save 镜像名:版本号 >(重定向符号) /路径/文件名.tgz 导出镜像到指定路径
docker image load -i /镜像存在的路径 导入指定路径下的镜像
docker logs -f(实时刷新) +容器id | tail -5(最新的五条信息) 查看容器对应的日志信息。
docker port 容器ID 查看容器的端口映射
docker bulid -t(-t代表tag) ‘镜像名称’ 脚本名称 用来创建自定义镜像文件的
docker tag 原镜像名 新镜像名 修改镜像名称
netstat -tunlp 查看宿主机的使用的端口

总结提升

  Docker和Dockerfile是现代化软件开发和部署的重要工具。通过使用Docker,开发人员可以实现快速、可靠和可移植的应用部署。而通过制作高质量的Dockerfile,可以确保镜像的可靠性和可维护性。对于开发人员来说,掌握Docker和Dockerfile的使用和最佳实践,将极大地提高开发和部署效率。


🎯 此文章对你有用的话记得留言+点赞+收藏哦🎯

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/33157.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【0212】tcpdump抓包分析pg_hba.conf以password作为认证证方式下frontend与Backend之间身份验证过程(13 - 2)

文章目录 1. 回顾2. 密码校验通过3. 密码校验失败上一文:【0211】tcpdump抓包分析pg_hba.conf以password作为认证证方式下frontend与Backend之间身份验证过程(13 - 1) 1. 回顾 在上一节内容中,讲解了Backend对于接收到来自frontend的字符串明文密码,和来自于来自pg_auth…

【网络原理】TCP/IP协议五层模型

🥊作者:一只爱打拳的程序猿,Java领域新星创作者,CSDN、阿里云社区优质创作者。 🤼专栏收录于:计算机网络原理 本期讲解协议、OSI七层模型、TCP/IP五层模型、网络设备所在的分层、数据的封装和分佣。 目录 …

STM32速成笔记—RTC

文章目录 一、RTC简介二、STM32的RTC2.1 主要特性2.2 RTC框图介绍 三、访问后备区域步骤四、RTC配置步骤五、RTC程序配置5.1 RTC结构体定义5.2 RTC初始化函数5.3 设置年月日,时分秒5.4 判断闰年函数5.5 获取当前年月日,时分秒5.6 获取星期几5.7 中断服务…

ModaHub魔搭社区:安装、启动 Milvus 服务(GPU版)教程

目录 安装、启动 Milvus 服务 安装前提 操作系统 硬件 软件 确认 Docker 状态 拉取 Milvus 镜像 下载并修改配置文件 启动 Milvus Docker 容器 常见问题 接下来你可以 安装、启动 Milvus 服务 CPU 版 Milvus GPU 版 Milvus 安装前提 操作系统 操作系统 版本 Ce…

Windows下安装ClickHouse图文教程

文章目录 1.安装WSL21.1启用适用于 Linux 的 Windows 子系统1.2启用Windows虚拟机功能1.3将WSL2设置为默认版本1.4下载Linux内核更新包1.5安装Linux子系统1.6设置账户和密码 2.安装Docker2.1下载与安装2.2设置镜像地址 3.安装Clickhouse3.1拉取镜像3.2启动clickhouse-server3.3…

git常用命令之命令集

15. 命令集 场景1. 构造1个文件的10个commit 命令作用for i in {1..10}; do date >> 66.txt && git add . && git commit -sm "update"; done自证 场景2. 构造10个文件 命令作用for i in {1..10}; do date >> "file_$i.log&quo…

vue3+vite安装配置element-plus

配置 element-plus 1. 安装 yarn add element-plus element-plus/icons-vue2. 按需引入插件 yarn add unplugin-vue-components unplugin-auto-import -D3. 配置vite.config.ts // vite.config.ts import AutoImport from unplugin-auto-import/vite import Components fro…

logback日志的分片压缩

logback-spring.xml <?xml version"1.0" encoding"UTF-8"?> <configuration debug"true"><springProperty name"LOG_PATH" source"shands.log.logPath" defaultValue"/var/delonix/logs/local"…

Python 基本数据类型(一)

文章目录 每日一句正能量Python3 基本数据类型多个变量赋值标准数据类型结语 每日一句正能量 最宝贵的生命&#xff0c;是我的灵魂所在&#xff0c;也是我&#xff0c;赖以生存的&#xff0c;最基本的保障。有了生命&#xff0c;也就有了&#xff0c;我的光明&#xff0c;我的神…

数据分析案例-航空公司满意度数据可视化

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

python---------xpath提取数据------打破局限

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com 目录 为什么要学习XPATH和LXML类库 什么是XPATH 认识XML XML的节点关系 常⽤节点选择⼯具 节点选择语法 节点修饰语法 选择未知节点 lxml库 _____________________________________________…

MySQL 高级(进阶) SQL 语句

目录 创建两个表格 location 表格​编辑 store_info 表格​编辑 ---- SELECT ---- ---- DISTINCT ---- ---- WHERE ---- ---- AND OR ---- ---- IN ---- ---- BETWEEN ---- ---- 通配符 ---- ---- LIKE ---- ---- ORDER BY ---- ---- 函数 ---- ---- GROUP BY ---- ----…

最新ai创作系统CHATGPT镜像系统源码+支持GPT4.0+支持ai绘画(MJ)+实时语音识别输入+免费更新版本

AI系统CHATGPT镜像程序源码支持GPT4支持ai绘画实时语音识别输入免费更新版本 一、AI创作系统二、系统介绍三、系统程序下载四、安装教程五、主要功能展示六、更新日志 一、AI创作系统 1、提问&#xff1a;程序已经支持GPT3.5、GPT4.0接口、支持新建会话&#xff0c;上下文记忆…

Windows11安装oneAPI和Visual Studio 2022配置Fortran并行环境

Windows11安装oneAPI和Visual Studio 2022配置Fortran并行环境 安装Visual Studio 2022 Community安装oneAPI建立Fortran工程项目测试建立单核运行的Fortran运行算例建立并行运行的Fortran运行算例 结语 安装Visual Studio 2022 Community 访问微软Visual Studio官网&#xff…

【java】HashMap扩容机制详解

文章目录 JDK1.7下的扩容机制JDK1.8下的扩容机制 JDK1.7下的扩容机制 JDK1.7下的resize()方法是这样的&#xff1a; void resize(int newCapacity) { Entry[] oldTable table; int oldCapacity oldTable.length; if (oldCapacity MAXIMUM_CAPACITY) { threshold Integer.…

git上传云效codeup

为了标识身份&#xff0c;建议先完成 Git 全局设置 git config --global user.name "xxx" git config --global user.email "xxxxxxqq.com" 1.删除本地 .git文件夹 2.云效上 添加库-新建代码库 3.在 git bash 里 按照 建好的代码库 下方的 命令行指引-…

无迹卡尔曼滤波在目标跟踪中的作用(一)

在前一节中&#xff0c;我们介绍了扩展卡尔曼滤波算法EKF在目标跟踪中的应用&#xff0c;其原理是 将非线性函数局部线性化&#xff0c;舍弃高阶泰勒项&#xff0c;只保留一次项 &#xff0c;这就不可避免地会影响结果的准确性&#xff0c;除此以外&#xff0c;实际中要计算雅各…

美团动态线程池实践思路,开源了

使用线程池 ThreadPoolExecutor 过程中你是否有以下痛点呢&#xff1f; 1.代码中创建了一个 ThreadPoolExecutor&#xff0c;但是不知道那几个核心参数设置多少比较合适 2.凭经验设置参数值&#xff0c;上线后发现需要调整&#xff0c;改代码重启服务&#xff0c;非常麻烦 3.线…

TypeScript学习(一):快速入门

文章目录 一、TypeScript 简介1、TypeScript 是什么&#xff1f;2、TypeScript 与 JavaScript 的区别3、JavaScript 的缺点4、为什么使用 TypeScript 二、TypeScript 开发环境搭建1、下载Node.js2、安装Node.js3、使用npm全局安装TypeScript4、创建一个ts文件5、使用tsc对ts文件…

【资料分享】全志科技T507-H评估板规格书(4核ARM Cortex-A53,主频1.416GHz)

1 评估板简介 创龙科技TLT507-EVM是一款基于全志科技T507-H处理器设计的4核ARM Cortex-A53国产工业评估板&#xff0c;主频高达1.416GHz&#xff0c;由核心板和评估底板组成。核心板CPU、ROM、RAM、电源、晶振等所有器件均采用国产工业级方案&#xff0c;国产化率100%。同时&a…