Dockerfile 构建发布镜像(dockerhub和阿里云)
今天刚学完Dockerfile,现在来测试一下Dockerfile部署tomcat项目构建镜像Dockerfile配置信息如下FROM centos:7# centos最新版默认是8,但官方已停止支持,现已连不了网MAINTAINER AdamShyly<598455320@qq.com># 现在大多用LabelCOPY readme.md /usr/local/readme.md#
目录
今天刚学完Dockerfile,现在来测试一下Dockerfile部署tomcat项目
构建镜像
Dockerfile配置信息如下
FROM centos:7 # centos最新版默认是8,但官方已停止支持,现已连不了网
MAINTAINER AdamShyly<598455320@qq.com> # 现在大多用Label
COPY readme.md /usr/local/readme.md # 拷贝readme 换成 ADD readme.md /usr/local 也是一样的
ADD jdk-8u321-linux-x64.tar.gz /usr/local # 自动解压
ADD apache-tomcat-9.0.60.tar.gz /usr/local # 自动解压 亲测如果是绝对路径会报错
RUN yum -y install vim # 构建镜像时运行的指令
ENV MYPATH /usr/local
WORKDIR $MYPATH # 指定工作目录
ENV JAVA_HOME /usr/local/jdk1.8.0_321
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.60
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.60
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080 # 开放8080端口
CMD /usr/local/apache-tomcat-9.0.60/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.60/bin/logs/catalina.out
# 注意是 tail -F 不是 tail -f
其中我将 readme.md 、jdk、tomcat 和 Dockfile 放置于同级目录
然后执行以下指令来构建镜像
docker build -t diytomcat .
注意我这里的PATH指定的是当前文件夹。对于这个PATH,官方有一段解释
The
PATH
specifies where to find the files for the “context” of the build on the Docker daemon.
大概意思就是Docker守护进程会根据这个PATH去寻找构造镜像所需的文件,例如 ADD 和 COPY
然后现在来测试一下这个镜像能不能正常启动tomcat服务
docker run -d -p 9090:8080 --name kuangshentomcat -v /home/docker-test-volume/tomcat/test:/usr/local/apache-tomcat-9.0.60/webapps/test -v /home/docker-test-volume/tomcat/tomcatlogs:/usr/local/apache-tomcat-9.0.60/logs diytomcat
我让tomcat容器的webapps和logs文件夹都被宿主机挂载,方便测试和使用
此时如果出错就可以直接去宿主机挂载的logs目录下查看日志
发布镜像
dockerhub
第一步:需要登录dockerhub账号
docker login -u 用户名
第二步:给要上传的镜像定义tag
docker tag 源镜像 仓库名/镜像:版本
第三步:上传镜像(注意这里的镜像名是刚刚定义完的tag)
docker push 镜像名
上传成功后可在dockerhub看到如下信息
阿里云
打开阿里云官网 ,找到 “容器镜像服务”
创建 “个人实例”
创建 “命名空间”
创建 “镜像仓库”
打开仓库后,这里就有官方提供的操作指令,非常详细
上传成功后如下图
更多推荐
所有评论(0)