栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

DockerFile的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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



    
    

index.jsp 文件 直接放在根目录

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




hello  docker-tomcat  jsp


Hello docker tomcat  jsp 
<% System.out.println("------someone entry------"); %> ~

访问 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
暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016499.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号