DockerFile
dockerfile是用来构建docker镜像的文件! 命令参数脚本
构建步骤:
1、编写一个dockerfile文件
2、docker build 构建成为一个镜像
3、docker run 运行镜像
4、docker push 发布镜像(DockerHub 、阿里云镜像仓库 )
1、基础知识
1、每个保留关键字(指令) 都必须是大写字母
2、执行从上到下顺序执行
3、# 表示注释
4、每一个指令都会创建提交一个新的镜像层,并提交!
dockerfile是面向开发的,发布项目,做镜像,就需要编写dockerfile文件!
步骤:开发、部署、运维
DockerFile:构建文件,定义了一切的步骤,源代码
DockerImages:DockerFile构建生成的镜像,最终发布和运行的产品!
Docker容器:容器就是镜像运行起来提供服务器
2、DockerFile的指令
FROM # 基础镜像,一切从这里开始构建
MAINTAINER # 镜像是谁写的,姓名+邮箱
RUN # 镜像构建的时候需要运行的命令
ADD # 添加内容: 比如加一个tomcat压缩包
WORKDIR # 镜像的工作目录
VOLUME # 镜像挂载的目录
EXPOSE # 保留暴露的端口
CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可以被代替
ENTRYPOINT # 指定这个容器启动的时候需要运行的命令,可以追加命令
ONBUILD # 当构建一个被继承DockerFile 的时候就会运行 ONBUILD 的指令。触发指令
COPY # 类似ADD ,将我们的文件拷贝到镜像中
ENV # 构建的时候设置环境变量
3、编写一个centos
1、编写Dockerfile文件 centos 21年之后停止维护 不要拉最新的镜像
[root@wkf dockerfile]# cat mydockerfile-centos
FROM centos:7.9.2009
MAINTAINER wukefeng<自己的邮箱>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y installvim
RUN yum -y install net-tools
EXPOSE 80
CMD echo$MYPATH
CMD echo"-----end-----"
CMD /bin/bash
2、通过命令构建镜像 最后有个 .docker build -f dockerfile文件名 -t 镜像名:[tag].[root@wkf dockerfile]# docker build -f mydockerfile-centos -t mycentos:0.1 .
成功显示如下
Successfully built f29d77d79136
Successfully tagged mycentos:0.1
查看本地进行的变更历史
4、编写一个tomcat镜像
4.1 准备镜像文件 tomcat压缩包,jdk的压缩包
4.2 编写dockerfile文件, 官方命名 Dockerfile ,build会自动寻找这个文件,就不需要 - f 指定了!
FROM centos:7.9.2009
MAINTAINER wukefeng<自己的邮箱@qq.com># 复制文件
COPY readme.txt /usr/local/readme.txt
# 添加文件
ADD jdk-8u333-linux-x64.tar.gz /usr/local/
#ADD指令 会自动解压压缩包到/usr/local目录下
ADD apache-tomcat-8.5.81.tar.gz /usr/local/
# centos镜像中没有 vim、ip addr、ifconfig
RUN yum -y installvim#安装ip addr
RUN yum -y install iproute
#安装ifconfig
RUN yum -y install net-tools
# ENV 指令设置环境变量
ENV MYPATH /usr/local
# 工作目录
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_333
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.81
ENV CATALINA_BASH /usr/local/apache-tomcat-8.5.81
ENV PATH$PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_BASH/bin
EXPOSE 8080# 容器启动后 运行tomcat 打印日志
CMD $CATALINA_HOME/bin/startup.sh &&tail -F $CATALINA_HOME/logs/catalina.out
4.3 构建镜像,因为取名的时候是Dockerfile 官方 所以不需要 -f 指定文件
docker build -t mytomcat .
4.4 启动镜像
4.4.1指定路径挂载
docker run -d -p 9090:8080 --name wkftomcat -v /home/wukefeng/build/tomcat/test:/usr/local/apache-tomcat-8.5.81/webapps/test -v /home/wukefeng/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-8.5.81/logs mytomcat
使用docker inspect 容器id 查看容器的信息,
其中Mounts是挂载信息 这里用了指定路径挂载
4.4.2具名挂载
docker run -d -p 9090:8080 --name wkftomcat -v wkftomcat-webapps-test:/usr/local/apache-tomcat-8.5.81/webapps/test -v wkftomcat-logs:/usr/local/apache-tomcat-8.5.81/logs mytomcat
使用 docker volume ls 指令查看当前容器卷
使用 docker volume inspect 卷名 查看当前卷
4.5 访问测试
curl localhost:9090
4.6 发布项目
由于做了卷挂载,我们可以直接在本地宿主机编写项目就可以发布了
web.xml 文件 路径:WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?><web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID"version="2.5"></web-app>
index.jsp 文件 直接放在根目录
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>hello docker-tomcat jsp</title>
</head>
<body>
Hello docker tomcat jsp <br/>
<%
System.out.println("------someone entry------");
%>
</body>
</html>
~
访问 ip:9090/test
查看日志 具名挂载路径
cat /var/lib/docker/volumes/wkftomcat-logs/_data/catalina.out
5、将编写好的tomcat 镜像上传到阿里云
5.1 登录阿里云
5.2 找到容器镜像服务
5.3 创建命名空间
5.4 创建容器镜像
5.5 浏览阿里云信息
6、上传成功查看(配置了阿里云镜像加速,不知道为什么速度还是很慢)
6、将编写好的tomcat镜像上传到百度云
6.1 登录百度云
6.2 找到容器镜像服务
6.3 创建命名空间
6.4 容器镜像服务基本操作
按照下面链接操作
https://cloud.baidu.com/doc/CCR/s/nkgk8y45r
# 登录 这个username命令去 容器镜像服务控制台左侧导航栏中(访问凭证)点击查看。 docker login --username=1dc08169ce9e47fd9f73106accc82673 registry.baidubce.com
# 重命名docker tag [ImageId] registry.baidubce.com/[namespace]/[ImageName]:[镜像版本号][root@wkf980120 build]# docker tag b5dcf949541e registry.baidubce.com/wukefeng-baiduyun/mytomcat:1.0
# 推送docker push registry.baidubce.com/wukefeng-baiduyun/mytomcat:1.0
版权归原作者 花落 失忆 所有, 如有侵权,请联系我们删除。