网页制作和网站建设的区别,网站建设相关文章,申请域名哪个网站好,超溜网站建设Dockerfile常用指令 视频学习资料来源这里#xff0c;点击本行文字即可跳转#xff0c;讲的比较详细#xff0c;不过比较老#xff0c;跟最新的肯定是有一些差异的 Dockerfile官网文档的话点击这里 中文文档可以看看这个#xff0c;不过没有详细的代码demo 或者是看这个 或… Dockerfile常用指令 视频学习资料来源这里点击本行文字即可跳转讲的比较详细不过比较老跟最新的肯定是有一些差异的 Dockerfile官网文档的话点击这里 中文文档可以看看这个不过没有详细的代码demo 或者是看这个 或者自行百度 注意docker使用的是分层设计每一行Dockerfile都会有一个小镜像在执行的时候如果指令没变并且之前的镜像已经生成成功了那么使用的是之前的缓存镜像构建镜像时使用 --no-cache 参数。 docker build --no-cache -t xxxxxxx构建一个你自己的Dockerfile // 到虚拟机你的用户目录或者root目录下,创建/编辑Dockerfile文件
vim Dockerfile// 写入以下内容注意Dockerfile指令的关键字必须大写
FROM centos:7// 构建一个镜像 -t代表你要构建的镜像仓库/名字和版本号
// 注意运行的时候会把你当前所在目录的全部文件都打包成镜像所以执行的时候最好目录中只存放了你需要打包的内容
// 注意最后有一个点
docker build -t mycentos7:01 .可以看到镜像构建成功了 运行的时候直接进入容器 // 例如你要运行centos容器
docker run -it centos:7使用RUN指令例如我要构建镜像的时候当镜像启动的时候执行一些命令 // 例如我要打包镜像的时候当镜像启动的时候执行一些命令
// 创建一个文件
vim Dockerfile// 写入以下内容写完之后保存退出
FROM centos:7
RUN yum install -y vim// 构建的时候会给你的镜像下载vim注意后面有一个点
docker build -t mycentos7:02 .---------------华丽的分割线-----------
// 例如我要打包镜像的时候当镜像启动的时候执行一些命令看到echo大家应该很熟悉了这里可以写shell脚本
// 创建一个文件
vim Dockerfile// 写入以下内容写完之后保存退出注意指令发生变化不会加载原先的docker镜像会从新下载
FROM centos:7
RUN echo helloWord
RUN yum install -y vim
# 也可以使用这种书写格式放个数组进去执行
# RUN[yum,install,-y,vim]// 构建的时候会给你的镜像下载vim注意后面有一个点
docker build -t mycentos7:03 .使用EXPOSE指令 // 例如我要打包镜像的时候当镜像启动的时候执行一些命令 声明运行容器使用的端口,EXPOSE可以配置多个
// 创建一个文件
vim Dockerfile// 写入以下内容写完之后保存退出
FROM centos:7
RUN yum install -y vim
EXPOSE 5672
EXPOSE 15672使用WORKDIR指令设置工作目录 // 创建一个文件
vim Dockerfile// 写入以下内容写完之后保存退出
FROM centos:7
RUN yum install -y vim
EXPOSE 5672
EXPOSE 15672
# 创建镜像的工作路径
WORKDIR /data
# 可以使用多个WORKDIR不加/是相对路径会在/data下新建一个test目录
WORKDIR test使用ADD 或者 COPY命令拷贝文件 // 创建一个文件
vim Dockerfile// 写入以下内容写完之后保存退出
FROM centos:7
RUN yum install -y vim
EXPOSE 5672
EXPOSE 15672
# 创建镜像的工作路径
WORKDIR /data
# 可以使用多个WORKDIR不加/是相对路径会在/data下新建一个test目录
WORKDIR test
# COPY 后面可以跟相对路劲和绝对路劲以下写法是将虚拟机中的相对路径的test.txt拷贝到镜像的绝对路径/data/test中
COPY test.txt /data/test---------华丽的分割线 ADD指令----------
// 创建一个文件
vim Dockerfile// 写入以下内容写完之后保存退出
FROM centos:7
RUN yum install -y vim
EXPOSE 5672
EXPOSE 15672
# 创建镜像的工作路径
WORKDIR /data
# 可以使用多个WORKDIR不加/是相对路径会在/data下新建一个test目录
WORKDIR test
# COPY 后面可以跟相对路劲和绝对路劲以下写法是将虚拟机中的相对路径的test2.txt拷贝到镜像的绝对路径/data/test中
ADD test2.txt /data/test---------华丽的分割线 ADD后面跟URLCOPY是不可以的----------
// 创建一个文件
vim Dockerfile// 写入以下内容写完之后保存退出
FROM centos:7
RUN yum install -y vim
EXPOSE 5672
EXPOSE 15672
# 创建镜像的工作路径
WORKDIR /data
# 可以使用多个WORKDIR不加/是相对路径会在/data下新建一个test目录
WORKDIR test
# COPY 后面可以跟相对路劲和绝对路劲
# 以下写法是将网络资源【URL这里是下载的网络资源地址】拷贝到镜像的绝对路径/data/test中
# 注意这里如果下的是压缩包是不会解压的
ADD URL /data/test---------华丽的分割线 ADD后面带压缩包可以解压到镜像----------
// 创建一个文件
vim Dockerfile// 写入以下内容写完之后保存退出
FROM centos:7
RUN yum install -y vim
EXPOSE 5672
EXPOSE 15672
# 创建镜像的工作路径
WORKDIR /data
# 可以使用多个WORKDIR不加/是相对路径会在/data下新建一个test目录
WORKDIR test
# COPY 后面可以跟相对路劲和绝对路劲
# 以下写法是将压缩包文件解压拷贝到镜像的绝对路径/data/test中
# 注意这里拷贝进去的是解压的文件了
# xxx是你的压缩包文件
ADD xxx /data/test---------华丽的分割线 ADD后面带压缩包解压到镜像改名字----------
// 创建一个文件
vim Dockerfile// 写入以下内容写完之后保存退出
FROM centos:7
RUN yum install -y vim
EXPOSE 5672
EXPOSE 15672
# 创建镜像的工作路径
WORKDIR /data
# 可以使用多个WORKDIR不加/是相对路径会在/data下新建一个test目录
WORKDIR test
# COPY 后面可以跟相对路劲和绝对路劲
# 以下写法是将压缩包文件解压拷贝到镜像的绝对路径/data/test中
# 注意这里拷贝进去的是解压的文件了
# xxx是你的压缩包文件
ADD xxx /data/test
# RUN mv 文件名字 要移动的文件目录
# xxx是文件名字文件目录是testMv
RUN mv xxx testMv---------华丽的分割线 ADD后面带压缩包解压到镜像改名字----------
// 创建一个文件
vim Dockerfile// 写入以下内容写完之后保存退出
FROM centos:7
RUN yum install -y vim
EXPOSE 5672
EXPOSE 15672
# 创建镜像的工作路径
WORKDIR /data
# 可以使用多个WORKDIR不加/是相对路径会在/data下新建一个test目录
WORKDIR test
# COPY 后面可以跟相对路劲和绝对路劲
# 以下写法是将压缩包文件解压拷贝到镜像的绝对路径/data/test中
# 注意这里拷贝进去的是解压的文件了
# apache-tomcat-8.5.61.tar.gz是你的压缩文件
ADD apache-tomcat-8.5.61.tar.gz /data/test
# RUN mv 文件名字 要移动的文件目录
RUN mv apache-tomcat-8.5.61.tar.gz tomcat
# 进入镜像的时候直接到tomcat工作目录中
WORKDIR tomcat使用VOLUME指令 // 创建一个文件
vim Dockerfile// 写入以下内容写完之后保存退出
FROM centos:7
RUN yum install -y vim
EXPOSE 5672
EXPOSE 15672
WORKDIR /data
WORKDIR test
ADD apache-tomcat-8.5.61.tar.gz /data/test
RUN mv apache-tomcat-8.5.61.tar.gz tomcat
WORKDIR tomcat
# 哪个目录允许挂载出来到宿主机例如/data/test可以挂载
VOLUME /data/test// 执行构建指令注意有个点
docker build -t mycentos:07 .// 执行挂载数据卷这里的路劲是我的要替换成你们的
// -v 你宿主机的绝对路径:容器内部的绝对路径注意路劲一定要写对不然挂不上
docker run -it -v /root/home/dockerFileVolume:/data/test使用ENV指令定义环境变量 // 创建一个文件
vim Dockerfile// 写入以下内容写完之后保存退出
FROM centos:7
RUN yum install -y vim
EXPOSE 5672
EXPOSE 15672
# 环境变量可以是key value也可以是key:value
ENV BASE_DIR /data/test
WORKDIR /data
WORKDIR test
ADD apache-tomcat-8.5.61.tar.gz /data/test
RUN mv apache-tomcat-8.5.61.tar.gz tomcat
WORKDIR tomcat
# 需要加$
VOLUME $BASE_DIR 使用ENTRYPOINT和CMD指令指定容器启动之后运行的指令 CMD指令和ENTRYPOINT指令的区别CMD指令会被覆盖不用加参数ENTRYPOINT需要加--entrypoint // 注意ENTRYPOINT 可以写多个
// 创建一个文件
vim Dockerfile// 写入以下内容写完之后保存退出
FROM centos:7
RUN yum install -y vim
EXPOSE 5672
EXPOSE 15672
# 环境变量可以是key value也可以是key:value
ENV BASE_DIR /data/test
WORKDIR /data
WORKDIR test
ADD apache-tomcat-8.5.61.tar.gz /data/test
RUN mv apache-tomcat-8.5.61.tar.gz tomcat
WORKDIR tomcat
# 需要加$
VOLUME $BASE_DIR
# 容器运行起来查看一下目录之下有哪些文件
ENTRYPOINT ls $BASE_DIR
# 容器起来之后查看某个文件,xxx是你的文件可以看到ENTRYPOINT 后面跟的是linux指令
ENTRYPOINT tail -f xxx----------华丽的分割线----------// 注意CMD可以写多个
vim Dockerfile// 写入以下内容写完之后保存退出
FROM centos:7
RUN yum install -y vim
EXPOSE 5672
EXPOSE 15672
# 环境变量可以是key value也可以是key:value
ENV BASE_DIR /data/test
WORKDIR /data
WORKDIR test
ADD apache-tomcat-8.5.61.tar.gz /data/test
RUN mv apache-tomcat-8.5.61.tar.gz tomcat
WORKDIR tomcat
# 需要加$
VOLUME $BASE_DIR
CMD ls $BASE_DIR----------华丽的分割线----------
// 上面的这个CMD指令可以被覆盖例如run的时候执行以下echo那么原先里面的CMD指令就被覆盖了
docker run mycentos7:001 echo hell word----------华丽的分割线----------
// ENTRYPOINT覆盖
docker run --entrypointls mycentos7:001 $BASE_DIRENTRYPOINT和CMD可以配合使用但是必须指定json的数据结构 ENTRYPOINT指定shell脚本 CMD指定参数 vim Dockerfile// 写入以下内容写完之后保存退出
FROM centos:7
RUN yum install -y vim
EXPOSE 5672
EXPOSE 15672
# 环境变量可以是key value也可以是key:value
ENV BASE_DIR /data/test
WORKDIR /data
WORKDIR test
ADD apache-tomcat-8.5.61.tar.gz /data/test
RUN mv apache-tomcat-8.5.61.tar.gz tomcat
WORKDIR tomcat
VOLUME $BASE_DIR
# 这俩配合使用CMD给ENTRYPOINT传递参数
ENTRYPOINT [ls,/data]
CMD [/data/test]
# 也可以这么使用ENTRYPOINT里面写一些指令然后CMD里面写灵活的脚本
# ENTRYPOINT [ls]
# CMD [/data/test]
# 比如动态的修改运行的jar包run的时候写上你的jar名字
# ENTRYPOINT [java,-jar]
# CMD [test.jar]