【Docker-5】-Docker运行自己的镜像
目录
- 理论知识
- 准备工作
- 编写Dockerfile文件
- 生成镜像并启动
一、理论知识
Dockerfile :告诉docker我需要怎么来制作自己的镜像,我要制作的镜像的操作是什么
Docker build :执行dockfile描述的每一件事,最终会把docker images 制作出来
具体内容可参照: https://docs.docker.com/engine/reference/builder/#buildkit
二、准备工作
2.1 简单编写测试jsp
2.2 安装tomcat镜像
docker pull hub.c.163.com/library/tomcat:latest
先去网易云镜像中心找到tomacat镜像,选择带鲸鱼图标的,即下图第一个:
复制下载地址,同时在下图界面下拉会找到tomcat的CATALINA_HOME为:/usr/local/tomcat(这在下节会用到)
三、编写Dockerfile文件
一般是用虚拟机中的 Vim命令编写Dockerfile文件,但是我亲测以后,发现在Windows下编写非常不方便,所以采用记事本方法编写,具体方式可见附件一。总共以下几句话:
from hub.c.163.com/library/tomcat :这句话表明制作的镜像以tomcat的镜像为起点,在这个基础镜像上进行后续操作,其hub.c.163.com/library/tomcat为步骤3中的镜像名。
MAINTAINER yifanrensheng : 为自己的一些信息(可以不写);
COPY hello.jsp /usr/local/tomcat/webapps/ROOT :将jsp拷贝到tomcat文件下
完整Dockerfile文件如下:
另外还有一个命令:CMD 启动该image应该跑的脚本
例如:CMD ["catalina.sh", "run"]
四、生成镜像并启动
QuickStart终端已经cd 到testdoker目录下了(具体见步骤5链接),同时,需要把步骤1中的 war 文件放到hellodocker文件夹下。
QuickStart终端执行 docker build -t hellotest:latest .,注意最后面有".",如下图
解释: -t表示为创建镜像的参数 ,hellotest为镜像名称,latest为镜像版本。"."表示Dockerfile在当前目录下,若不是,需要修改成Dockerfile的文件路径。
QuickStart终端执行 docker images,会发现镜像已经成功创建:
启动镜像:docker run -d -p 8888:8080 hellotest
进入网页: http://192.168.99.100:8888/hello.jsp
当然,也可以直接命令行测试:
附件一:
1:背景
Window下成功安装Docker,正常启动Quick Start 终端,在制作镜像时,需要用虚拟机中的Vim命令编写Dockerfile文件,也就是vi Dockerfile,但是发现并不方便,于是采用记事本方式。
2: 操作流程
启动QuickStart终端,
mkdir hellodocker,在docker的工作目录 (也就是Docker Toolbox的安装位置)下新建testdocker文件夹,效果如下图:(注意若程序是默认安装的情况下,请先解决C盘中的文件不能修改问题,也即在文件加属性--安全--放开修改权限)
cd hellodocker :进入testdocker文件夹
touch Dockerfile :创建一个Docker文件在当前目录,注意这里的Dockerfile的首字母是大写的(因为Linux文件名是大小写敏感的)
notepad Dockerfile& :使用windows的记事本打开Dockerfile文件(注意最后面有一个‘&‘),效果如下图