郑州网站建站模板,成立一个做网站的工作室,网站的流量有什么用,网页图片怎么居中目录
1、前言
2、构建镜像的方式
2.1、docker commit
2.1.1、先查看下当前的容器
2.1.2、生成该容器镜像
2.1.3、查看镜像列表
2.2、Dockerfile
2.2.1、创建Dockerfile文件
2.2.2、编写Dockerfile文件
2.2.3、构建镜像
2.2.4、使用该镜像生成容器
3、Dockerfile
3…目录
1、前言
2、构建镜像的方式
2.1、docker commit
2.1.1、先查看下当前的容器
2.1.2、生成该容器镜像
2.1.3、查看镜像列表
2.2、Dockerfile
2.2.1、创建Dockerfile文件
2.2.2、编写Dockerfile文件
2.2.3、构建镜像
2.2.4、使用该镜像生成容器
3、Dockerfile
3.1、什么是Dockerfile
3.2、Idea集成Dockerfile构建镜像
3.2.1、先构建一个简单的springboot应用
3.2.2、编写Dockerfile
3.2.3、文件上传到/data/project下
3.2.4、构建镜像
3.2.5、启动 1、前言
在前面章节中docker部署的nginx或者tomcat都是镜像仓库中已有的镜像或是别人已经开发好的镜像。那么在实际项目中我们除了使用已有的镜像外还有我们自己构建的镜像比如项目的基础服务应用等等。
2、构建镜像的方式
构建自己的镜像有2种方式
docker commit命令。基于一个容器来创建。Dockerfile方式构建。
我们以上一篇中部署的tomcat应用为例。
2.1、docker commit
2.1.1、先查看下当前的容器
docker ps 2.1.2、生成该容器镜像
docker commit 容器id 镜像名称 2.1.3、查看镜像列表
可见已经生成成功。此时如果你想上传到镜像仓库中需要先到Docker Hub中注册一个账号密码。
随后登录账号并将该镜像推送到镜像仓库中。
# 登录仓库
docker login# 上传
docker push 镜像名称tomcattest_application
2.2、Dockerfile
除了上面docker commit命令提交方式以外还有Dockerfile方式构建镜像。而这种方式也是我们最经常使用的。因为docker commit方式只有生成该镜像的人才知道执行了什么命令怎么生成的镜像。而别人使用的时候根本无法感知。而Dockerfile保留了所有的构建镜像的相关信息类似于脚本文件的形式可以清楚的看到构建整个镜像的前后相关信息。
2.2.1、创建Dockerfile文件
touch Dockerfile
2.2.2、编写Dockerfile文件
FROM nginx
RUN echo h1this is dockerfile create nginx image demo html/h1 /usr/share/nginx/html/index.html这里构建Nginx镜像同时创建一个简单的web网页网页内容为this is dockerfile create nginx image demo html
2.2.3、构建镜像
docker build -t mynginx -f Dockerfile .
在Dockerfile同级目录下执行构建脚本。
-t 指定镜像名称。-f 指定Dockerfile文件如果文件名为Dockerfile则可以省略。如果自定义文件名如myDockerFile则需要-f myDockerFile 看到这个就说明构建成功。查看下当前镜像多了我们构建的mynginx。 2.2.4、使用该镜像生成容器
docker run -d -p 8888:80 mynginx浏览器访问http://ip:8888可以看到刚刚我们创建的网页。 3、Dockerfile
上面介绍了Dockerfile构建镜像的方式。那么我们再来详细说说关于Dockerfile因为这个是我们后续构建自己程序镜像的重点。
Dockerfile镜像容器之间的关系大致如下图网上借来的我们使用Dockerfile文件定义镜像信息然后通过docker build构建镜像接着运行镜像启动容器当然中间一样可以push到Docker Hub仓库。 3.1、什么是Dockerfile
Dockerfile实际是一个文本文件其包含了一条条的指令每一条指令都用于构建镜像中的一层同时每一条指令的内容描述了该层应如何构建。当我们需要定制自己额外的需求时只需要在Dockerfile文件的基础上添加或修改指令重新生成新的镜像即可。
一个完整的Dockerfile文件会包含以下几个部分内容
基础镜像信息。使用 FROM关键字指定基础镜像信息该命令必须是 Dockerfile 文件的第 1条指令。如上面的FROM nginx表示指定nginx为这个容器的基础镜像。维护者信息。使用MAINTAINER 关键字指定通常可以使用 Dockerfile 文件创建者的姓名或者电子邮件作为维护者信息。镜像操作指令。每执行一条镜像操作指令,将在镜像中添加新的一层。可以根据需要使用一条或者多条镜像操作指令,常见的镜像操作指令有:RUN、COPY、ADD、EXPOSE、WORKDIR、ONBUILD、USER、VOLUME等。容器启动执行指令。用于指定在启动容器时需要执行的命令。通过关键字 CMD、ENTRYPOINT 指定。
3.2、Idea集成Dockerfile构建镜像
3.2.1、先构建一个简单的springboot应用
SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}
RestController
RequestMapping(demo)
public class TestController {GetMapping(index)public String indexAction(){return this is dockerfile create springboot application;}
}
server:port: 8080
程序启动后访问接口http://localhost:8080/demo/index会返回结果this is dockerfile create springboot application内容。 3.2.2、编写Dockerfile
# 指定基础镜像作为该容器的基础环境如springboot应用最起码得有jdk环境
FROM openjdk:8# 执行维护者的信息
MAINTAINER shamee csdn peng793049488# 创建一个存放该工程的目录
RUN mkdir -p /data/project
COPY app.jar /data/project/app.jar# 对外暴露一个8899端口
EXPOSE 8899# 执行启动
ENTRYPOINT [/bin/sh, -c, java -jar /data/project/app.jar]3.2.3、文件上传到/data/project下 3.2.4、构建镜像
docker build -t myapp . 构建完成docker images 可以查看到我们的镜像myapp。 3.2.5、启动
docker run --namemyapp -d -p 18080:8080 myapp
访问我们的接口地址http://192.168.74.129:18080/demo/index就可以看到我们的接口返回。