目录

构建镜像

发布镜像

dockerhub 

阿里云


今天刚学完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看到如下信息


阿里云

打开阿里云官网 ,找到 “容器镜像服务”

创建 “个人实例” 

 创建 “命名空间

创建 “镜像仓库” 

打开仓库后,这里就有官方提供的操作指令,非常详细

 上传成功后如下图

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐