我们可以通过编写Dockerfile来制作自己的镜像,下面先动手来操作一下,制作一个镜像,然后基于该镜像运行一个容器,在容器里运行我们自己的javaweb应用。
<1>拉取tomcat镜像
docker pull tomcat
查看镜像:
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest 21b6e55f4e76 10 days ago 558 MB
<2>编写Dockerfile
root@ubuntu:~# touch Dockerfile
root@ubuntu:~# vi Dockerfile
<3>Dockerfile内容:
FROM tomcat <!--以哪个镜像为基础镜像 -->
MAINTAINER jin1017 yearing1017@126.com <!--镜像的所有者和邮箱(可以不写)-->
COPY Search.war /usr/local/tomcat/webapps <!--Search.war是我自己的一个javaweb应用,我把它拷贝到tomcat的webapps目录下,运行这个镜像的时候可以访问到-->
~
<4>build命令来创建镜像
root@ubuntu:~# docker build -t search . <!-- -t 参数表示指定镜像名字,后面的.表示在当前目录下创建该镜像,下面是创建的具体步骤-->
Sending build context to Docker daemon 400.9 kB
Step 1/3 : FROM tomcat
---> 21b6e55f4e76
Step 2/3 : MAINTAINER jin1017 yearing1017@126.com
---> Running in 35c5b4cb6ba4
---> 371342ea846a
Removing intermediate container 35c5b4cb6ba4
Step 3/3 : COPY Search.war /usr/local/tomcat/webapps
---> b033b15ea935
Removing intermediate container 6c1e0e3f9123
Successfully built b033b15ea935
<5>查看创建的镜像
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
search latest b033b15ea935 2 minutes ago 558 MB
tomcat latest 21b6e55f4e76 10 days ago 558 MB
<6>基于自己新创建的镜像来运行容器
<!-- -d参数表示后台运行该容器-->
<!-- -p参数表示将本机的某个端口映射到tomcat的8080端口上-->
root@ubuntu:~# docker run -d -p 9999:8080 search
e75a83534fe2e71a9a6c27418eb6fd79d0af9bcd291a2c051433203348f57163
<7>我自己的javaweb应用部署到tomcat上,访问是http://localhost:8080/Search
因为我们将8080端口映射到了本地的9999端口上,所以访问9999就能看到,查看一下效果: