DockerFile构建过程

-
-
2024-03-12

 

DockerFile构建过程

 

一、了解镜像加载原理

(一)、Docker镜像加载原理

UnionFS ( 联合文件系统)

UnionFS ( 联合文件系统): Union文件系统(UnionFS )是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtualfilesystem)。Union文件系统是Docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。

特性:一次同时加载多个文件系统,但从外面看起来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录

Docker镜像加载原理

docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS.
**bootfs(boot file system)**主要包含bootloader和kernel, bootloader主要是引导加载kernel, Linux刚启动时会加载bootfs文件系统,在Docker镜像的最底层是bootfs。这一层与我们典型的Linux/Unix系统是一样的,包含boot加载器和内核。当boot加载完成之后整个内核就都在内存中了,此时内存的使用权已由bootfs转交给内核,此时系统也会卸载bootfs。
rootfs (root file system),在bootfs之上。包含的就是典型Linux系统中的/dev, /proc,/bin, letc等标准目录和文件。rootfs就是各种不同的操作系统发行版,比如Ubuntu , Centos等等。

(二)、Docker镜像的分层

1、初识Dockerfile

Dockerfile就是用来构建docker镜像的构建文件!命令脚本

通过脚本可以生成镜像,镜像是一层一层的,脚本是一个个的命令,每个命令都是一层

在这里插入图片描述

2、Docker镜像的创建

Docker镜像

  • 应用发布的标准格式
  • 支撑一个Docker容器的运行

Docker镜像的创建方法

  • 基于已有镜像创建
  • 基于本地模板创建
  • 基于Dockerfile创建

3、DockerFile构建过程

dockerfile是用来构建dokcer镜像的文件!命令参数脚本!

构建步骤︰
1、编写一个dockerfile 文件

2、docker build构建成为一个镜像

3、docker run运行镜像

4、docker push发布镜像(DockerHub、阿里云镜像仓库!)

基础知识:

1、每个保留关键字(指令)都是必须是大写字母

2、执行从上到下顺序执行

3、#表示注释

4、每一个指令都会创建提交一个新的镜像层,并提交

Dockerfile结构四部分:

基础镜像信息

维护者信息

镜像操作指令

容器启动时执行指令

Dockerfile每行支持一条指令,每条指令可携带多个参数,支持使用以“#“号开头的注释

4、Dockefile的指令

指令含义
FROM 镜像指定新镜像所基于的镜像,第一条指令必须为FROM指令,每创建一个镜像就需要一条FROM指令
MAINTAINER 名字说明新镜像的维护人信息
RUN 命令在所基于的镜像上执行命令
CMD [“要执行的命令”,“参数1”,“参数2”]指令启动容器时要运行的命令或者脚本,Dockerfile只能由一条CMD命令,如果指定多条则只能最后一条被执行
EXPOSE 端口号指定新镜像加载到Docker时要开启端口
ENV 环境变量 变量值设置一个环境变量的值,会被后面的RUN使用
ADD 源文件/目录 目标文件/目录将源文件复制到目标文件,源文件要与Dockerfile位于相同的目录中,或者是一个URL
COPY 源文件/目录 目标文件/目录将本地主机上的文件/目录复制到目标地点,源文件/目录要与Dockerfile在相同目录中
VOLUME [“目录”]在容器中创建一个挂载点
USER 用户名/UID指定运行容器时的用户
WORKDIR 路径为后续的RUN、CMD、ENTRYPOINT指定工作目录
ONBUILD 命令指定生成的镜像作为一个基础镜像时所要运行的命令
HEALTHCHECK健康检查
ENTRYPOINT指定这个容器启动的时候要运行的命令,可以追加命令

二、Dockefile实战测试

1、commit镜像(提交镜像)

将容器里面运行的程序及运行环境打包生成新的镜像

docker commit [选项] 容器ID/名称 仓库名称:[标签]

-m 说明信息
-a 作者信息
-p 生成过程中停止容器的运行

2、基于已有的镜像镜像容器创建

docker create -it centos:7 /bin/bash

docker commit -m "new" -a "chenwei" 45c7600e3b17 cwcentos

在这里插入图片描述

3、基于本地模板创建

wget http://download.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gz

cat debian-7.0-x86-minimal.tar.gz | docker import - centos:new

docker images  | grep new

4、Dockfile创建镜像

操作步骤:

  • 下载基础镜像
  • 建立工作目录
  • 创建并编写Dockerfile文件
  • 生成镜像
  • 启动容器
4.1 构建一个apache镜像
mkdir apche    #新建一个存放Dockerfile文件的目录

cd apche
vim Dockerfile    # 文件名就用Dockerfile
FROM centos:7                           #基于的基础镜像
MAINTAINER chenwei              #维护镜像的用户信息
RUN yum -y update                 #镜像操作指令安装apache软件 
RUN yum -y install httpd
EXPOSE 80                                 #开启80端口 
ADD index.html /var/www/html/index.html  #复制网站首页文件
ADD  run.sh /run.sh             #将执行脚本复制到镜像中
RUN chmod 755 /run.sh   
CMD ["/run.sh"]                     #启动执行脚本

 

vim run.sh

#!/bin/bash
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND
echo “I love you"  > index.html    #网站首页内容
docker build -t cw:centos .   (注意别忘了末尾有个“.”)

使用新镜像运行容器

docker  images
docker run  -d -p 1314:80 cw:centos
docker ps -a
使用浏览器输入:192.168.126.70:1314访问

 

在这里插入图片描述

4.2 构建sshd容器服务
mkdir sshd
cd sshd
vim Dockerfile
FROM centos:7
MAINTAINER chenwei
RUN yum -y update
RUN yum -y install openssh* net-tools lsof telnet passwd
RUN echo '123456' | passwd --stdin root
RUN sed -i 's/UsePAM yes /UsePAM no/g' /etc/ssh/sshd_config
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN sed -i '/^session\s\+required\s\+pam_loginuid.so/s/^/#/' /etc/pam.d/sshd
RUN mkdir -p /root/.ssh && chown root.root /root && chmod 700 /root/.ssh
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

构建镜像:

docker build -t sshd:cw .
docker images
docker run -d -P sshd:cw
docker ps -a
ssh localhost -p 49154

在这里插入图片描述

4.3、构建Systemctl镜像
mkdir systemctl
cd systemctl
vim Dockerfile
FROM sshd:cw
ENV container docker

RUN (cd /lib/systemd/system/sysinit.target.wants/;for i in *;do [ $i ==\
systemd-tmpfiles-setup.service ] || rm -f $i;done);\
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\

rm -f /lib/systemd/system/local-fs.target.wants/*;\
rm -f /lib/systemd/system/sockets.target.wants/*udev*;\

rm -f /lib/systemd/system/sockets.target.wants/*initctl*;\
rm -f /lib/systemd/system/basic.target.wants/*;\

rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME ["/sys/fs/cgroup"]
CMD ["/usr/sbin/init"]

 

构建镜像:

docker build -t systemd:cw .

privileged container内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限

docker run --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup:ro systemd:cw /sbin/init &

进入容器:

docker exec -it d74334b3055d

 

在这里插入图片描述

4.4、构建nginx镜像
mkdir nginx
cd nginx
vim Dockerfile
  • 1
  • 2
  • 3
FROM centos:7
MAINTAINER LIC

RUN yum -y update
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make

RUN useradd -M -s /sbin/nologin nginx

ADD nginx-1.12.0.tar.gz /usr/local/src
WORKDIR /usr/local/src
WORKDIR nginx-1.12.0
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make && make install

ENV PATH /usr/local/nginx/sbin:$PATH

EXPOSE 80
EXPOSE 443

RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
ADD run.sh /run.sh
RUN chmod +x /run.sh
CMD ["/run.sh"]
vim run.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx

构建镜像

docker build -t nginx:centos .

启动容器

docker run  -d -p 888:80 nginx:centos

浏览器输入:192.168.126.70:888
在这里插入图片描述

4.4、构建tomcat镜像
mkdir tomcat
cd tomcat
vim Dockerfile
FROM centos:7
MAINTAINER chenwei<1163571070@qq.com>
ADD jdk-8u91-linux-x64.tar.gz /opt
ADD apache-tomcat-8.5.16.tar.gz /opt
RUN mv /opt/jdk1.8.0_91 /usr/local/java
RUN yum -y install vim
ENV   JAVA_HOME=/usr/local/java
ENV   CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
ENV   PATH=$JAVA_HOME/bin:$PATH
RUN mv /opt/apache-tomcat-8.5.16 /usr/local/tomcat
EXPOSE 8080
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

构建镜像

docker build -t tomcat:centos .
  • 1

启动容器

docker run  -d -p 8088:8080 tomcat:centos
  • 1

浏览器输入:192.168.126.70:8088
在这里插入图片描述

4.5、构建mysql镜像
mkdir mysql
cd mysql
vim Dockerfile
  • 1
  • 2
  • 3
FROM centos:7
MAINTAINER LIC:<935704787@qq.com>

ADD mysql-boost-5.7.20.tar.gz /opt

RUN yum -y install \
ncurses \
ncurses-devel \
bison \
cmake \
gcc \
gcc-c++ \
make

WORKDIR /opt/mysql-5.7.20/

RUN cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1 && make -j4 && make install

RUN useradd -M -s /sbin/nologin  mysql

RUN chown -R mysql:mysql /usr/local/mysql
RUN rm -rf /etc/my.cnf

WORKDIR /opt/mysql
ADD my.cnf /etc

RUN chown mysql:mysql /etc/my.cnf

ENV PATH $PATH:/usr/local/mysql/bin:/usr/local/mysql/lib

WORKDIR /usr/local/mysql/bin/
RUN ./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

RUN cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ 

EXPOSE 3306


RUN echo -e "#!/bin/sh \nsystemctl enable mysqld" >/run.sh
RUN chmod 755 /run.sh
RUN sh /run.sh
CMD ["init"]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60

构建镜像

docker build -t mysql:centos7 .
  • 1

启动容器

docker run --privileged -d -P mysql:centos7
  • 1

进入容器给权限

docker exec -it daa9f4c357b5 bash
grant all privileges on *.* to 'root'@'localhost' identified by '123123';
grant all privileges on *.* to 'root'@'%' identified by '123123';
  • 1
  • 2
  • 3

在宿主机系统中安装mairadb客户端连接mysql容器

mysql -h 192.168.126.110 -P 49158 -p123123
  • 1

在这里插入图片描述

docker exec -it daa9f4c357b5 bash
mysql -u root -p123123
  • 1
  • 2

在这里插入图片描述

 

文章知识点与官方知识档案匹配,可进一步学习相关知识

云原生入门技能树首页概览17590 人正在系统学习中

ChenWeiBlog

关注

  • 5

专栏目录

DockerFile构建过程解析【笔记】

01-20

从应用软件过程来看,DockerFileDocker镜像与Docker容器分别代表软件的三个不同阶段。 DockerFile是软件的原材料 Docker镜像是软件的交付品 Docker容器可以认为是软件的运行态 DockerFile面向开发,Docker镜像成为...

Dockerfile的制作

2301_77296721的博客

1234

Dockerfile一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。最后使用docker run命令运行一个简易的dockerfile就制作完成了。2、通过docker build命令结合dockerfile构建一个镜像。docker build -f(文件名) -t(自定义镜像名) .在镜像列表中会看到我们从远程仓库中获取的nginx镜像。2、准备好了基础镜像,编写dockerfile。1、编写一个dockerfile文件。1、准备一个nginx的基础镜像。

3 条评论

Rex~热评

在CSDN学到了很多知识,真心希望CSDN越来越来好!

写评论

Dockerfile详解

3-10

所以我们在编 Dockerfile构建镜像时,可以先 思考在 Linux 上安装该软件的流程,再用 Dockerfile 提供的指令转化到 Dockerfile 中 即可。 用Dockerfile 构建镜像 用Dockerfile 的核心在于编 Dockerfile,但是编完之后我们需要知道怎...

dockerdocker入门笔记|通过Dockerfile文件构建镜像_run sed -i...

3-4

(转自:Dockerfile构建镜像实例_https://blog.csdn.net/klvjb/article/details/110334248) 一、创建工作目录 [root@localhost ~]# mkdir sshd [root@localhost ~]# cd sshd/ 二、编写Dockerfile文件 [root@localhost sshd]# vi Dock...

dockerfile详解

热门推荐

紫色飞猪

4万+

前言 各位想必应该记得,我们此前如果安装一个nginx的话,安装完以后,我们说过很多次了,通常不会运行在默认配置下,那因此,我们通常需要去改一改它的配置文件或者定义模块化配置文件,然后启动服务。那为什么,nginx的默认配置不符合我们的需要呢?很显然,不同的生产场景所需要用到的配置参数各个相同,因此,对方只能用一个默认的,认为适用于大多数普遍场景情形的或者适用于较小主机资源情况下的那么一个设定来...

Docker】如何编写Dockerfile,深入理解 Dockerfile构建精简且高效的容器镜像

最新发布

q742971636的博客

1215

CMD提供容器默认的执行命令,可以被运行容器时传入的命令覆盖。ENTRYPOINT配置容器启动时执行的默认可执行文件,可以被运行容器时传入的命令追加到其参数之后。综合来说,CMD通常用于提供应用的默认启动命令,而ENTRYPOINT通常用于配置容器以类似可执行程序的方式运行。你也可以同时使用它们,以ENTRYPOINT提供基础执行文件,而CMD提供默认参数。

Docker——Docker File实战_dockerfile

3-11

Docker——docker-registry私有仓库集群构建_庄小焱的博客-CSDN博客_docker 多个registry Dockerfile reference | Docker Documentation

Dockerfile文件介绍_dockerfile文件如何

2-25

1、dockerfile是用来构建镜像的文件 ​ 1.1编写dockerfile文件 ​ 1.2dockerbuild 创建镜像 ​ 1.3 docker run 运行镜像 ​ 1.4 docker push 上传镜像 2、执行顺序从上至下 3、#代表注释 ...

Docker--如何构建dockerFile

Jumin_Noki的博客

992

Dockerfile是用来构建镜像的文本文件,是由一条条构建镜像所需的指令和参数构建的脚本。1. 什么是dockerFile。2. docker流程和原理。3. 常用的保留字指令。

dockerdockerfile构建镜像

manyulanlanlu的博客

3874

docker run创建并启动容器,再通过docker exec/cp 等容器操作指令修改容器内容,然后再去用docker commit提交成新的镜像。

生产级别Dockerfile制作过程_java:11-alpine

3-5

3.熟悉基本的docker命令和k8s部署流程。 案例情景: 比如研发A按照公司的需求,改用java11制作了jar包,想制作docker镜像,请问怎样使用上述基础镜像? 解决方案: a.新建一个文件夹,将java11制作的jar包、目录stage4-app中的Dockerfile.noah...

Docker入门:Dockerfile构建过程解析及案例演示_dockerfile内容显示...

2-28

一、Dockerfile简介 二、Dockerfile构建过程 2.1 Dockerfile内容基础知识 2.2 Docker执行Dockerfile的大致流程 2.3 DockerfileDocker镜像和Docker容器的关系 三、Dockerfile保留字简介 四、Dockerfile应用实例——以Centos为例 ...

使用dockerfile构建nginx镜像的方法示例

01-10

Docker通过读取Dockerfile里面的内容可以自动build image,Dockerfile一个包含了build过程中需要执行的所有命令的文本文件。也可以理解为Dockfile是一种被Docker程序解释的脚本,由一条一条的指令组成,每条指令...

dockerfile脚本

03-23

自己整理的,用dockerfile创建镜像,还不是很完善,给初学者参考用

Docker 学习(十一)编写Dockerfile_dockerfile怎么

3-11

COPY <源文件> <目标文件>:将Dockerfile同目录下的文件拷贝到容器里面 ADD <源文件> <目标文件>:类似于COPY,区别在于如果文件是*.tar、*.gzip、*.bzip2等文件,会自动解压缩(注意:支持解压tar、gzip和bzip2文件,但不会自动解压zip...

十二、DockerFile构建过程解析_eclipse-temurin:8-jdk

2-24

Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。 在Docker 常用命令篇中,我们已经知道了2中构建镜像的方式 export\import 和 commit方式。这两种方式都需要先运行并创建容器,然后在容器中安装vi...

Dockerfiler:以声明方式管理根据一组Dockerfile构建的映像

03-09

Dockerfiler是用于声明性管理从一组Dockerfile构建的映像的工具。 基本上,它可以帮助您管理“ Dockerfile”存储库,在其中您可以将所需的任何工具构建到您控制的映像中 这不是用于管理从您自己的项目构建的图像,...

详解利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置

01-11

而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动MySQL服务接受外部连接,主要是通过Dockerfile和shell脚本实现这一过程。 搭建步骤 1、首先创建Dckerfile: ...

Docker】个人镜像文件Dockerfile制作详解_自制dockerfile

3-7

1. Dockerfile简介 2. Dockerfile相关指令 3. Dockerfile 4. requirements.txt 5. build构建镜像文件 6. run运行容器 7.书籍推荐: 1. Dockerfile简介 Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。

Docker容器:docker镜像的创建及dockerfile

jinmusen的博客

1710

(3)如果在docker run时指定了命令或者镜像中有ENTRYPOINT指令则CMD程序不会执行。(4)

Dockerfile创建详解

NullpointerExcep的博客

8274

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

容器(第四篇)创建镜像-dockerfile

Y_ht1209的博客

1465

dockerfile有多重要,你知道吗!

Dockerfile创建镜像

Yuzhang2046的博客

4421

基础镜像尽量使用轻量级最小化的镜像。Dockerfile中尽量把RUN指令合并在一起,减少镜像的层数(因为每一个RUN指令就是一个镜像层)。多级构建(拿Dockerfile构建好的镜像再构建一次)。FROM 镜像 AS 别名 COPY --FROM 别名构建镜像时最后添加清空系统或应用程序的缓存的命令。

DockerDockerfile & 镜像构建

Dragon的博客

423

可以设置自己需要的signal,主要的目的是为了让容器内的应用程序在接收到signal之后可以先做一些事情,实现容器的平滑退出,如果不做任何处理,容器将在一段时间之后强制退出,会造成业务的强制中断,这个时间默认是10s。改镜像运行容器后,需要暴露给外部的端口,但仅仅表示该容器想要暴露某些端口,并不会与主机端口有映射关系,如果想将容器暴露的端口与主机映射则需要使用。以上为该命令的三种法,第三种与普通 Shell 命令类似,第一、二两种都是可执行文件 + 参数的形式,另外数组内的参数必须使用双引号。

DockerFile构建过程解析

haust_允谦的博客

190

Dockerfile

Docker(七)—— 如何用Dockerfile制作自己的镜像

qq_44886213的博客

6179

自己一个小程序,如何带着环境打包成一个镜像,然后发布给别人run起来呢?以前程序员需要交付一个jar包或者war包,但是现在!

Docker技术入门| Part03:Dockerfile详解(Dockerfile概念、Dockerfile 指令、使用Dockerfile构建镜像)

weixin_43399263的博客

708

VOLUME [“”, “”…]VOLUME 之前我们说过,容器运行时应该尽量保持容器存储层不发生操作,对于数据库类需要保存动态数据的应用,其数据库文件应该保存于卷(volume)中,后面的章节我们会进一步介绍 Docker 卷的概念。为了防止运行时用户忘记将动态文件所保存目录挂载为卷,在 Dockerfile 中,我们可以事先指定某些目录挂载为匿名卷,这样在运行时如果用户不指定挂载,其应用也可以正常运行,不会向容器存储层入大量数据。

dockerfile构建步骤

04-05

Dockerfile构建步骤如下: 1.编写Dockerfile文件,指定基础镜像和所需的软件和配置文件; 2.使用docker build命令来构建镜像,该命令的语法为:docker build [OPTIONS] PATH; 3.docker build命令会根据...

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

  • 400-660-0108

ChenWeiBlog

码龄3年 暂无认证

128

原创

4万+

周排名

141万+

总排名

24万+

访问

等级

3166

积分

321

粉丝

930

获赞

283

评论

3845

收藏

习惯养成

签到新秀

持续创作

笔耕不辍

创作能手

阅读者勋章

私信

关注

写文章

热门文章

分类专栏

  • 9篇

最新评论

qq_46661297: vsftp也要设置开机自启动,否则提醒21端口连接拒绝

ZzzGH.: 大佬,使用windows连接后看不到ftp目录下的pub文件夹是什么原因呢?

m0_71824839: 诶哟不错哦,我的可以删除,删除完之后就能登陆了。

princessQWQ: 百度云的源码包没了表情包

erferk: drop

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

最新文章

2021年73篇

2020年55篇

目录

  1. 目录
  2. 一、了解镜像加载原理
  3.  
    1. (一)、Docker镜像加载原理
    2.  
      1. UnionFS ( 联合文件系统)
      2. Docker镜像加载原理
    3. (二)、Docker镜像的分层
    4.  
      1. 1、初识Dockerfile
      2. 2、Docker镜像的创建
      3. 3、DockerFile构建过程
      4. 4、Dockefile的指令
  4. 二、Dockefile实战测试
  5.  
    1. 1、commit镜像(提交镜像)
    2. 2、基于已有的镜像镜像容器创建
    3. 3、基于本地模板创建
    4. 4、Dockfile创建镜像
创作活动

举报


 

“您的支持是我持续分享的动力”

微信收款码
微信
支付宝收款码
支付宝

目录