DockerFile的使用

2023-05-16

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DockerFile的使用 的相关文章

随机推荐

  • 四旋翼位置控制之-GPS水平位置控制

    mark一下 xff0c 争取一周内抽时间写完 感兴趣的朋友可以加我qq讨论 最近事情太多 xff0c 今天争取写完 先给大家介绍一些基本知识 GPS精度因子 xff1a PDOP xff08 Position Dilution of Pr
  • 基于四元数的扩展卡尔曼(EKF)滤波器四旋翼姿态解算详解-1.KF介绍

    先说明一下 xff0c 之前介绍的两种姿态解算算法http blog csdn net wkdwl article details 52119163 互补滤波和入梯度下降姿态解算算法 xff0c 虽然在姿态解算方面效果还比较不错 但是缺点就
  • android开发(一)常见问题

    1 android开发环境 1 添加环境变量名称为 xff1a ANDROID HOME ANDROID HOME 61 D xxx android android sdk 2 下面路径添加到path环境变量里 ANDROID HOME p
  • 基于四元数的扩展卡尔曼(EKF)滤波器四旋翼姿态解算详解-2.EKF介绍

    尽快抽时间写完吧
  • Linux环境安装RabbitMQ

    RabbitMQ Linux环境安装 检查当前linux服务器的版本 lsb release a 官网下载安装包 xff1a https www rabbitmq com download html 1 2 3 选择对应的安装环境 4 对照
  • MySQL的安装

    MySQL的安装 1 下载 网址 xff1a https dev mysql com downloads mysql 2 下载5 7版本 xff08 1 xff09 xff08 2 xff09 xff08 3 xff09 3 配置环境变量
  • Nginx windows server 2012部署过程

    部署静态网页到服务器 今天做了一个静态网页 xff0c 想部署带到自己的阿里云服务器 通过查询可以使用tomcat容器或者nginx xff0c 主流方式是nginx部署 xff0c 记录一下自己部署的过程 一 nginx简介 Nginx
  • 点击按钮实时刷新图片

    js给 lt img gt 标签的src赋值 最近做一个点击一个按钮刷新加载另一张图片的功能 主要就是改变图的路径 记录一下自己遇到的坑 支持原生的js和jq实现 用js原生方法 xff1a document getElementById
  • RestTemplate的学习与使用

    RestTemplate的学习与使用 最近在开发过程中遇到使用接口传输数据 了解到到RestTemplate 1 源码分析 span class token keyword public span span class token keyw
  • Linux环境下redis的安装

    Linux环境下redis的安装 1 下载redis安装包 服务器上执行以下命令下载redis安装包 cd export software wegt http download redis io releases redis 6 2 6 t
  • Docker的安装

    Docker的安装 1 linux下安装docker xff08 CentOS7 xff09 curl sSL https get daocloud io docker sh 2 查看docker的版本 docker v 3 启动 关闭do
  • Redis的应用场景

    1 String操作 xff08 1 xff09 计数器 incr artcle readconunt 文章id get artcle readconunt 文章id 2 Hash操作 1 对象缓存 hmset user 1 name li
  • nginx在linux环境安装

    1 安装依赖包 yum install pcre pcre devel y yum install openssl openssl devel y 2 官网下载安装包传到linux环境 安装包存放位置 export software 解压目
  • 开发杂谈(一)常见问题

    1 github 1 从GITHUB下载慢而且容易中断解决办法 1 从GITHUB下载慢而且容易中断解决办法 将github项目导入到码云网 xff08 https gitee com xff09 然后再下载会很快 xff0c 登录码云网后
  • Windows证书函数

    C语言操作WINDOWS系统存储区数字证书相关函数详解及实例 以下代码使用C 43 43 实现遍历存储区证书及使用UI选择一个证书 使用 CertOpenSystemStore打开证书存储区 在循环中 使用CertEnumCertifica
  • 使用Docker安装RabbitMQ

    1 yum 包更新到最新 yum update xff08 2 xff09 安装需要的软件包 xff0c yum util 提供yum config manager功能 xff0c 另外两个是devicemapper驱动依赖的 yum in
  • docker的安装及常用命令

    安装Docker 官网地址 https www docker com 文档地址 https docs docker com Dockerhub仓库地址 https hub docker com 名词解释 镜像 xff08 image xff
  • docker安装部署一些软件(nginx、tomcat、mysql、es)

    linux防火墙相关操作 systemctl restart firewalld service span class token comment 重启服务 span systemctl start firewalld span class
  • docker的commit和容器数据卷

    commit镜像 span class token function docker span commit 提交容器成为一个新的副本 span class token comment 命令和git原理相似 span span class t
  • DockerFile的使用

    DockerFile dockerfile是用来构建docker镜像的文件 xff01 命令参数脚本 构建步骤 xff1a 1 编写一个dockerfile文件 2 docker build 构建成为一个镜像 3 docker run 运行