DockerFile的使用

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 install vim
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 install vim
#安装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-app xmlns: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
  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值