Dockerfile来制作镜像
- 前期准备
Dockerfile文件的内容,我直接贴上,免得以后忘了怎么写了
FROM docker.io/centos:7
MAINTAINER Jeremy
#把java与tomcat添加到容器中
ADD jdk-8u11-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.5.30.tar.gz /usr/local/
#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_11
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.30
ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.30
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#容器运行时监听的端口
EXPOSE 8080
这里From的内容,就是我之前下好的基础镜像,Centos:7
其他内容不做介绍
ENV 就是容器中要用的环境变量
注意:暴漏的端口是8080
这个镜像是我们自己定制的,使用jdk版本和tomcat的版本都是指定的
然后,我们执行
docker build –t linx/tomcat .
注意不要忘了.,这个点是表示Dockerfile就是在当前目录下的Dockerfile。
- 在现在的情况下,我们应该是得到了镜像
- 现在,我们来让容器运行起来
docker run -d -p 28080:8080 --name tomcat linux/tomcat:7
然后,容器在后台就运行起来
可以通过,
docker ps -a
来查看容器的运行状态,通过start来使容器up起来
docker start tomcat
然后,进入到容器中
docker exec -it tomcat /bin/bash
这样就可以,进入到容器中,并且启动tomcat服务
cd /usr/local/apache-tomcat-8.5.30/bin
./startup.sh
tomcat服务就起来了
将此镜像push到docker hub上
- 首先先登陆到docker hub ,如果没有账号,到官网上注册
- 登陆到docker hub,login
- 然后发布镜像
docker push 用户名/仓库名[:tag名]
这里的 用户名/仓库名[:tag名] 代表的镜像必须是本机存在的,tag名不写的话默认就是latest。 也就是说在创建镜像时的命名必须是规范的格式(加用户名)。
并且用户名就是自己在docker hub上注册的名称。如这里的docker150430.
发布成功后,这时我们用docker search 就能搜到自己提的镜像。