尚硅谷Docker实战教程-笔记09【高级篇,DockerFile解析】

news2024/11/13 10:56:34
  • 尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】
  • 视频地址:尚硅谷Docker实战教程(docker教程天花板)_哔哩哔哩_bilibili
  1. 尚硅谷Docker实战教程-笔记01【基础篇,Docker理念简介、官网介绍、平台入门图解、平台架构图解】
  2. 尚硅谷Docker实战教程-笔记02【基础篇,Docker安装、镜像加速器配置】
  3. 尚硅谷Docker实战教程-笔记03【基础篇,Docker常用命令】
  4. 尚硅谷Docker实战教程-笔记04【基础篇,Docker镜像】
  5. 尚硅谷Docker实战教程-笔记05【基础篇,Docker本地镜像发布到阿里云与私有库】

  6. 尚硅谷Docker实战教程-笔记06【基础篇,Docker容器数据卷】

  7. 尚硅谷Docker实战教程-笔记07【基础篇,Docker常规安装简介】

  8. 尚硅谷Docker实战教程-笔记08【高级篇,Docker复杂安装详说】

  9. 尚硅谷Docker实战教程-笔记09【高级篇,DockerFile解析】

  10. 尚硅谷Docker实战教程-笔记10【高级篇,Docker微服务实战】

  11. 尚硅谷Docker实战教程-笔记11【高级篇,Docker网络】

  12. 尚硅谷Docker实战教程-笔记12【高级篇,Docker-compose容器编排】

  13. 尚硅谷Docker实战教程-笔记13【高级篇,Docker轻量级可视化工具Portainer】

  14. 尚硅谷Docker实战教程-笔记14【高级篇,Docker容器监控之CAdvisor+InfluxDB+Granfana、Docker终章总结】

  15. 尚硅谷Docker实战教程-笔记15【高级篇,Docker终章总结】

目录

2.高级篇(大厂进阶)

2.DockerFile解析

P057【57_Dockerfile简介】07:48

P058【58_DockerFile构建过程解析】06:10

P059【59_Dockerfile保留字简介】24:40

P060【60_centos之dockerfile需求说明】05:26

P061【61_centos之dockerfile案例演示】11:03

P062【62_虚悬镜像】07:47


2.高级篇(大厂进阶)

2.DockerFile解析

P057【57_Dockerfile简介】07:48

官网:Dockerfile reference | Docker Documentation

P058【58_DockerFile构建过程解析】06:10

从应用软件的角度来看,DockerfileDocker镜像Docker容器分别代表软件的三个不同阶段,

  1. *  Dockerfile是软件的原材料;
  2. *  Docker镜像是软件的交付品;
  3. *  Docker容器则可以认为是软件镜像的运行态,也即依照镜像运行的容器实例。

Dockerfile面向开发,Docker镜像成为交付标准,Docker容器则涉及部署与运维,三者缺一不可,合力充当Docker体系的基石。

  1. Dockerfile,需要定义一个Dockerfile,Dockerfile定义了进程需要的一切东西。Dockerfile涉及的内容包括执行代码或者是文件、环境变量、依赖包、运行时环境、动态链接库、操作系统的发行版、服务进程和内核进程(当应用进程需要和系统服务和内核进程打交道,这时需要考虑如何设计namespace的权限控制)等等;

  2. Docker镜像,在用Dockerfile定义一个文件之后,docker build时会产生一个Docker镜像,当运行 Docker镜像时会真正开始提供服务;

  3. Docker容器,容器是直接提供服务的。

P059【59_Dockerfile保留字简介】24:40

Tomcat镜像-GitHub:https://github.com/docker-library/tomcat/blob/16a2137a26ae88227d8bac176182235ad69c82b3/11.0/jdk21/openjdk-bookworm/Dockerfile

#
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
#
# PLEASE DO NOT EDIT IT DIRECTLY.
#

FROM openjdk:21-jdk-bookworm

ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
WORKDIR $CATALINA_HOME

# let "Tomcat Native" live somewhere isolated
ENV TOMCAT_NATIVE_LIBDIR $CATALINA_HOME/native-jni-lib
ENV LD_LIBRARY_PATH ${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$TOMCAT_NATIVE_LIBDIR

# see https://www.apache.org/dist/tomcat/tomcat-11/KEYS
# see also "versions.sh" (https://github.com/docker-library/tomcat/blob/master/versions.sh)
ENV GPG_KEYS A9C5DF4D22E99998D9875A5110C01C5A2F6059E7
Last login: Thu Jul  6 09:35:29 2023 from 192.168.10.1
[root@node001 ~]# docker run -it ubuntu /bin/bash
root@905b3a8333e6:/# pwd
/
root@905b3a8333e6:/# exit
exit
[root@node001 ~]# docker images
REPOSITORY                                          TAG       IMAGE ID       CREATED         SIZE
node001:5000/vluubuntu                              1.2       a1ed6fe2f61e   6 days ago      118MB
vluubuntu                                           1.2       a1ed6fe2f61e   6 days ago      118MB
ubuntu                                              1.2       7295d0d3bc7e   6 days ago      118MB
registry.cn-hangzhou.aliyuncs.com/vlu001/myubuntu   1.3       079bf1275a8a   6 days ago      185MB
atguigu/ubuntu                                      3.7       7b40f602c178   7 days ago      72.8MB
hello-world                                         <none>    9c7a54a9a43c   2 months ago    13.3kB
tomcat                                              latest    fb5657adc892   18 months ago   680MB
mysql                                               5.7       c20987f18b13   18 months ago   448MB
registry                                            latest    b8604a3fe854   20 months ago   26.2MB
ubuntu                                              latest    ba6acccedd29   20 months ago   72.8MB
hello-world                                         latest    feb5d9fea6a5   21 months ago   13.3kB
redis                                               6.0.8     16ecd2772934   2 years ago     104MB
billygoo/tomcat8-jdk8                               latest    30ef4019761d   4 years ago     523MB
[root@node001 ~]# docker run -it -p 8080:8080 30ef4019761d bash
root@a73f91c73851:/usr/local/tomcat# pwd
/usr/local/tomcat
root@a73f91c73851:/usr/local/tomcat# exit
exit
[root@node001 ~]# docker run -it -p 8080:8080 30ef4019761d
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp

P060【60_centos之dockerfile需求说明】05:26

[root@node001 ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
a1d0c7532777: Pull complete 
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
[root@node001 ~]# docker images
REPOSITORY                                          TAG       IMAGE ID       CREATED         SIZE
vluubuntu                                           1.2       a1ed6fe2f61e   6 days ago      118MB
node001:5000/vluubuntu                              1.2       a1ed6fe2f61e   6 days ago      118MB
ubuntu                                              1.2       7295d0d3bc7e   6 days ago      118MB
registry.cn-hangzhou.aliyuncs.com/vlu001/myubuntu   1.3       079bf1275a8a   7 days ago      185MB
atguigu/ubuntu                                      3.7       7b40f602c178   7 days ago      72.8MB
hello-world                                         <none>    9c7a54a9a43c   2 months ago    13.3kB
tomcat                                              latest    fb5657adc892   18 months ago   680MB
mysql                                               5.7       c20987f18b13   18 months ago   448MB
registry                                            latest    b8604a3fe854   20 months ago   26.2MB
ubuntu                                              latest    ba6acccedd29   20 months ago   72.8MB
hello-world                                         latest    feb5d9fea6a5   21 months ago   13.3kB
centos                                              latest    5d0da3dc9764   21 months ago   231MB
redis                                               6.0.8     16ecd2772934   2 years ago     104MB
billygoo/tomcat8-jdk8                               latest    30ef4019761d   4 years ago     523MB
[root@node001 ~]# docker run -it 5d0da3dc9764 /bin/bash
[root@365542d50727 /]# exit
exit
[root@node001 ~]# docker images centos
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
centos       latest    5d0da3dc9764   21 months ago   231MB
[root@node001 ~]# 

P061【61_centos之dockerfile案例演示】11:03

下载linux-jdk:小柒博客 | 开源软件镜像站

jdk-8u171-linux-x64.tar.gz    182.0 MiB    2022-Sep-07 15:18

FROM centos:7
MAINTAINER zzyy<zzyybs@126.com>
 
ENV MYPATH /usr/local
WORKDIR $MYPATH
 
#安装vim编辑器
RUN yum -y install vim
#安装ifconfig命令查看网络IP
RUN yum -y install net-tools
#安装java8及lib库
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把jdk-8u171-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
 
EXPOSE 80
 
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash
[root@node001 jdk]# docker build -t centosjava8:1.5 .
[+] Building 112.3s (12/12) FINISHED                                                                                                                           
 => [internal] load .dockerignore                                                                                                                         0.0s
 => => transferring context: 2B                                                                                                                           0.0s
 => [internal] load build definition from Dockerfile                                                                                                      0.0s
 => => transferring dockerfile: 782B                                                                                                                      0.0s
 => [internal] load metadata for docker.io/library/centos:7                                                                                              16.1s
 => [1/7] FROM docker.io/library/centos:7@sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987                                        25.5s
 => => resolve docker.io/library/centos:7@sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987                                         0.0s
 => => sha256:2d473b07cdd5f0912cd6f1a703352c82b512407db6b05b43f2553732b55df3bc 76.10MB / 76.10MB                                                          7.9s
 => => sha256:9d4bcbbb213dfd745b58be38b13b996ebb5ac315fe75711bd618426a630e0987 1.20kB / 1.20kB                                                            0.0s
 => => sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f 529B / 529B                                                                0.0s
 => => sha256:eeb6ee3f44bd0b5103bb561b4c16bcb82328cfe5809ab675bb17ab3a16c517c9 2.75kB / 2.75kB                                                            0.0s
 => => extracting sha256:2d473b07cdd5f0912cd6f1a703352c82b512407db6b05b43f2553732b55df3bc                                                                17.2s
 => [internal] load build context                                                                                                                         3.3s
 => => transferring context: 190.93MB                                                                                                                     3.3s
 => [2/7] WORKDIR /usr/local                                                                                                                              0.0s
 => [3/7] RUN yum -y install vim                                                                                                                         31.6s
 => [4/7] RUN yum -y install net-tools                                                                                                                    6.2s 
 => [5/7] RUN yum -y install glibc.i686                                                                                                                  17.9s 
 => [6/7] RUN mkdir /usr/local/java                                                                                                                       0.5s 
 => [7/7] ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/                                                                                                11.1s 
 => exporting to image                                                                                                                                    3.1s 
 => => exporting layers                                                                                                                                   3.0s 
 => => writing image sha256:0f64bc97e953a34834cea9da896940303d9de08d211e6fcb5ff3a6e05fdee6a6                                                              0.0s 
 => => naming to docker.io/library/centosjava8:1.5                                                                                                        0.0s
[root@node001 jdk]# docker images
REPOSITORY                                          TAG       IMAGE ID       CREATED         SIZE
centosjava8                                         1.5       0f64bc97e953   4 minutes ago   1.27GB
vluubuntu                                           1.2       a1ed6fe2f61e   6 days ago      118MB
node001:5000/vluubuntu                              1.2       a1ed6fe2f61e   6 days ago      118MB
ubuntu                                              1.2       7295d0d3bc7e   6 days ago      118MB
registry.cn-hangzhou.aliyuncs.com/vlu001/myubuntu   1.3       079bf1275a8a   7 days ago      185MB
atguigu/ubuntu                                      3.7       7b40f602c178   7 days ago      72.8MB
hello-world                                         <none>    9c7a54a9a43c   2 months ago    13.3kB
tomcat                                              latest    fb5657adc892   18 months ago   680MB
mysql                                               5.7       c20987f18b13   18 months ago   448MB
registry                                            latest    b8604a3fe854   20 months ago   26.2MB
ubuntu                                              latest    ba6acccedd29   20 months ago   72.8MB
hello-world                                         latest    feb5d9fea6a5   21 months ago   13.3kB
centos                                              latest    5d0da3dc9764   21 months ago   231MB
redis                                               6.0.8     16ecd2772934   2 years ago     104MB
billygoo/tomcat8-jdk8                               latest    30ef4019761d   4 years ago     523MB
[root@node001 jdk]# docker run -it 0f64bc97e953 /bin/bash
[root@b985c5c7ac7b local]# pwd
/usr/local
[root@b985c5c7ac7b local]# vim a.txt
[root@b985c5c7ac7b local]# cat a.txt
aaaAAA
[root@b985c5c7ac7b local]# vim a.txt
[root@b985c5c7ac7b local]# cat a.txt
aaaAAA
111 centOS, vim + ifconfig + java8
[root@b985c5c7ac7b local]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)
        RX packets 8  bytes 648 (648.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@b985c5c7ac7b local]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
[root@b985c5c7ac7b local]# [root@node001 jdk]# 
[root@node001 jdk]# docker ps
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS         PORTS     NAMES
b985c5c7ac7b   0f64bc97e953   "/bin/bash"   2 minutes ago   Up 2 minutes   80/tcp    keen_heyrovsky
[root@node001 jdk]# 

P062【62_虚悬镜像】07:47

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LSTM介绍

LSTM ft表示 遗忘门。LSTM对于每一次的输入,首先决定遗忘掉之前的哪些记忆。将ft和t-1时刻的细胞状态相乘,得出将遗忘哪些记忆。 记忆门 是用来控制是否将t时刻的数据并入细胞状态。tanh函数可以将此刻向量中的有效信息提取出来,为gt。sigmoid函数用于控制此刻多少记忆进入…

阿里云ACE认证和华为云HCIE认证对比分析

最近有不少小伙伴私信问我&#xff0c;阿里云、腾讯云、华为云这几大厂商的云认证&#xff0c;哪一个更好&#xff0c;今天有空来跟大家认真地分析一下。 01-从云计算市场占有率来看 作为国内云计算市场的探路人&#xff0c;阿里虽然一路走来有过很多坎坷&#xff0c;但也不负…

Linux系统优化策略

Linux系统优化策略 1.禁用不需要的服务 在Linux系统中禁用不需要的服务可以通过以下步骤进行&#xff1a; 使用以下命令查看当前正在运行的服务&#xff1a; systemctl list-unit-files --typeservice根据需要禁用特定的服务&#xff0c;使用以下命令&#xff1a; systemctl …

【LeetCode周赛】2022上半年题目精选集——双指针

文章目录 2271. 毯子覆盖的最多白色砖块数思路代码 2302. 统计得分小于 K 的子数组数目代码1——前缀和滑动窗口代码2——双指针 O ( 1 ) O(1) O(1)空间 &#xff08;代码1的优化&#xff09; https://leetcode.cn/circle/discuss/G0n5iY/ 2271. 毯子覆盖的最多白色砖块数 22…

Win10安全中心怎么关闭?Win10安全中心关闭方法

Win10安全中心怎么关闭&#xff1f;关闭Win10的安全中心可以帮助用户自定义系统的安全和防护设置&#xff0c;但有些用户不知道怎么操作才能关闭安全中心&#xff0c;首先用户需要打开Win10电脑的设置选项&#xff0c;接着打开安全中心&#xff0c;然后关掉安全中心的实时保护、…

STM32CubeMX使用示例---生成LED闪烁工程

这里记录一下通过STM32CubeMX配置STM32G030C8T6&#xff0c;生成LED闪烁的示例工程的过程&#xff0c;用来学习使用STM32CubeMX&#xff1b; 以STM32G030C8T6 PB4 脚做LED 输出闪烁为例&#xff0c;外部8MHZ 晶振,系统主频64MHZ,LED 灯1 秒钟闪烁一次做一个示例程序。 文章目录…

Go语言程序设计(八)数据输入输出

Go语言提供了多种用于实现数据输入、输出的函数,这些函数在fmt包中实现。在输入、输出数据时,首先要导入fmt包,导入语句为: import "fmt" 一、标准输出函数 数据输出(Data Output),是计算机对各类输入数据进行加工处理后,将结果以用户所要求的形式输出到标准输出设…

OpenCV使用`clone()`函数来进行深度拷贝,拷贝后的`image_clone`修改不会影响原始图像`image`

这是完整的代码: #include <opencv2/opencv.hpp>int main() {// 创建一个白色的图像cv::Mat image(500, 500, CV_8UC3, cv

SpringCloud微服务(三)RabbitMQ、SpringAMQP、elasticsearch、DSL、MQ、ES详细介绍

目录 一、初始MQ 同步调用 异步调用 什么是MQ 执行下面的命令来运行MQ容器&#xff1a; 如果冲突了&#xff0c;可以先查询 RabbitMQ概述 常见消息模型 HelloWorld案例 二、SpringAMQP 引入依赖 Work Queue 消费预取限制 ​编辑 发布、订阅 发布订阅Fanout Ex…

作物计数方法之合并信息生成json标签的方法

在研究农情的方向中&#xff0c;作物计数是一个很重要的方向&#xff0c;前文已经提到了一些要使用的方法 前文链接&#xff1a;作物计数方法汇总_追忆苔上雪的博客-CSDN博客 在研究计数过程中&#xff0c;还需要将上文处理过的数据信息存入json文件方便后续使用&#xff0c;这…

Array.from详解

德玛玩前端 2023-07-07 在以往的开发中&#xff0c;对于Array.from的了解是from是Array的静态方法&#xff0c;可以将类数组和迭代对象转换为数组&#xff0c;可以结合Set集合快速实现数组的去重&#xff0c;一直以为Array,from()只有一个参数&#xff0c;不是传类数组就是可迭…

idea打包项目时报错 There are test failures

出现这个错误时要点击跳过测试类的按钮&#xff0c;图中的这个圆圈&#xff0c;可以看到test已经被划掉了 再点击package打包&#xff0c;成功。

启航RK3588边缘计算之旅:保定飞凌OK3588开发板

启航RK3588边缘计算之旅&#xff1a;保定飞凌OK3588开发板 引言&#xff1a; 随着人工智能技术的飞速发展&#xff0c;人们对于能够提供高性能和灵活性的智能设备有着极大的需求。作为人工智能领域的先锋企业&#xff0c;保定飞凌公司在设计和生产高性能处理器方面取得了卓越的…

在服务器从零开始配置conda、pytorch、cv2

疯掉了 希望是最后一次 0.配置WinSCP和PUTTY 在Windows上使用PuTTY进行SSH连接-腾讯云开发者社区-腾讯云 1.配置conda 如何在Linux服务器上安装Anaconda&#xff08;超详细&#xff09;_linux安装anaconda_流年若逝的博客-CSDN博客 实验室远程登录Linux服务器并配置环境_远…

Linux性能优化实践——平均负载

平均负载&#xff08;Load Average&#xff09; 当我们输入uptime命令时&#xff0c; 这里有几个参数&#xff0c;解释如下 0:54 &#xff1a;当前时间&#xff1b;up 50 mins&#xff1a;系统运行时间&#xff1b;2 users&#xff1a;正在登录用户数&#xff1b;load avera…

活动回顾| 萌啦科技亮相第三届东南亚大会,用数据赋能助力东南亚出海新机遇!

“聚焦深耕”资源对接 6月30日&#xff0c;由DNY123东南亚卖家导航主办的聚焦深耕——第三届东南亚电商本地化&品牌资源对接会在深圳圆满结束。 本次对接会以"聚焦深耕"为主题&#xff0c;旨在推动东南亚电商业务的本地化发展&#xff0c;并促进品牌资源的互通与…

考研的尽头是考公?

2022年12月23日&#xff0c;作为中国诞生于互联网的职业考试培训行业市场领导者的粉笔有限公司&#xff08;“粉笔”或“公司”&#xff09; &#xff0c;早前通过港交所上次聆讯后开始招股。 据悉&#xff0c;粉笔计划发售20&#xff0c;000&#xff0c;000股股份&#xff08;…

win系统删除oracle数据文件恢复---惜分飞

有客户联系我们,说win平台下的数据库,在由于空间紧张,在关闭数据库的情况下删除的两个数据文件,导致数据库无法正常访问很多业务表,需要对其进行恢复,查看alert日志发现大概操作,删除文件之后,启动数据库失败 Completed: alter database mount exclusive alter database open E…

十八、Jenkins(centos7)执行接口自动化测试脚本,飞书推送测试结果消息

十八、Jenkins&#xff08;centos7&#xff09;执行接口自动化测试脚本&#xff0c;飞书推送测试结果消息 1.创建 Freestyle project 项目 2. 输入git仓库地址 https://gitee.com/HP_mojin/pytest_allure_request_20220811 3. 增加构建步骤-Execute shell&#xff08;Jenkins…

TiDB架构中有多少个模块?核心的组件是哪个?

TiDB 集群主要包括三个核心组件&#xff1a;TiDB Server&#xff0c;PD Server 和 TiKV Server。此外&#xff0c;还有用于解决用户复杂 OLAP 需求的 TiSpark 组件和简化云上部署管理的 TiDB Operator 组件。 TiDB架构图解 1. TiDB Server TiDB Server 负责接收 SQL 请求&…