Docker 02 - 向 Docker 的 Tomcat 镜像中部署 Web 应用

在此篇之前, 需要配置一些环境, 请参考上一篇的介绍: Docker 01 - CentOS 7 中安装 Docker 的详细步骤.

1 下载 Docker 镜像

# 查看本地镜像(暂时没有任何镜像):
[root@localhost /data]# docker images
REPOSITORY      TAG             IMAGE ID        CREATED         SIZE

# 查看正在运行的 Docker 容器(暂时没有运行的):
[root@localhost /data]# docker ps
CONTAINER ID    IMAGE           COMMAND         CREATED         STATUS        PORTS         NAMES

配置国内的镜像加速器, 然后抓取 Tomcat 的镜像:

# 前往 Docker 安装目录, 新增配置:
[root@localhost ~]# cd /etc/docker/
[root@localhost docker]# ls
key.json
[root@localhost docker]# vim daemon.json 

# 加速器配置内容如下:
{
  "registry-mirrors": ["https://registry.docker-cn.com", "https://pee6w651.mirror.aliyuncs.com"]
}

# 保存、退出后, 另配置生效:
[root@localhost docker]# systemctl daemon-reload
# 最后需要重启 Docker 服务:
[root@localhost docker]# systemctl start docker.service

# 然后从仓库中拉取 Tomcat 镜像(下面镜像名称与镜像分支号之间的冒号":"不能有空格):
[root@localhost /data]# docker pull tomcat:8.5.43
8.5.43: Pulling from library/tomcat
9cc2ad81d40d: Pulling fs layer 
e6cb98e32a52: Download complete 
42cfa3699b05: Pull complete 
......
Digest: sha256:6e30b06a90d3206519a5ea730057001a1b830b9169e1baf76a97e1767efc0db7
Status: Downloaded newer image for tomcat:8.5.43

# 查看是否拉取成功:
[root@localhost docker]# docker image ls
REPOSITORY      TAG             IMAGE ID        CREATED         SIZE
tomcat          8.5.43          6e30b06a90d3    4 days ago      506MB

2 部署Web项目

2.1 通过Dockerfile自定义项目镜像

我们通过 Dockerfile 脚本(由一系列命令和参数构成), 从基础镜像中创建一个新的、自定义的镜像.

# 创建操作目录:
[root@localhost ~]# mkdir -p /data/Docker && cd /data/Docker
# 创建 Dockerfile 脚本, 内容如下:
[root@localhost ~]# cat Dockerfile
FROM tomcat:8.5.43
ADD heal-test /usr/local/tomcat/webapps

# 其中 “heal-test” 是我们要发布的测试Web项目, 是解压后的文件, 与 Dockerfile 处于同级目录.

# 在 Dockerfile 文件所在目录执行:
[root@localhost Docker]# docker build --rm -t heal-test:1.0 .
Sending build context to Docker daemon  70.75MB
Step 1/2 : FROM tomcat:8.5.43
 ---> 6e30b06a90d3
Step 2/2 : ADD goSearch /usr/local/tomcat/webapps
 ---> 09ddcc5cacc6
Successfully built 09ddcc5cacc6
Successfully tagged heal-test:1.0

# 查看镜像是否生成:
[root@localhost Docker]# docker images
REPOSITORY      TAG             IMAGE ID        CREATED         SIZE
heal-test       1.0             09ddcc5cacc6    7 seconds ago   576MB
tomcat          8.5.43          6e30b06a90d3    4 days ago      506MB

2.2 启动自定义镜像, 生成一个容器

# 根据自定义的镜像创建一个容器, 运行在宿主机的 7070 端口上:
[root@localhost data]# docker run -it -p 7070:8080 heal-test:1.0

# 查看是否正常运行:
[root@localhost data]# docker ps
CONTAINER ID    IMAGE           COMMAND             CREATED           STATUS            PORTS                    NAMES
23f14c40c4f8    heal-test:1.0   "catalina.sh run"   20 seconds ago    Up 19 seconds       0.0.0.0:7070->8080/tcp   upbeat_meninsky

2.3 另一种启动方式: 交互式启动

# 通过bash命令, 与 Docker 进行交互:
[root@localhost Docker]# docker run -it --name heal-test -p 7070:8080 heal-test:1.0 bash
WARNING: IPv4 forwarding is disabled. Networking will not work.
root@87aabcbc700b:/usr/local/tomcat# cd conf/
root@87aabcbc700b:/usr/local/tomcat/conf# ls
catalina.policy      context.xml           jaspic-providers.xsd  server.xml        tomcat-users.xsd
catalina.properties  jaspic-providers.xml  logging.properties    tomcat-users.xml  web.xml
root@87aabcbc700b:/usr/local/tomcat/conf# exit
exit

3 (附) 向镜像中添加文件

镜像中一般不支持vivim等工具, 因此我们可以借助cp(拷贝)命令上传文件到镜像中.

# 通过 cp 命令将文件拷贝到容器中:
[root@localhost data]# docker cp test.xml 23f14c40c4f8:/usr/local/tomcat/conf/Catalina/localhost

参考资料

Docker 删除镜像

使用 Dockerfile 定制镜像

在docker下的tomcat容器中部署war包的两种方式

Docker安装+HelloWorld+运行Tomcat

版权声明

作者: 马瘦风(https://healchow.com)

出处: 博客园 马瘦风的博客(https://www.cnblogs.com/shoufeng)

感谢阅读, 如果文章有帮助或启发到你, 点个[好文要顶👆] 或 [推荐👍] 吧😜

本文版权归博主所有, 欢迎转载, 但 [必须在文章页面明显位置标明原文链接], 否则博主保留追究相关人员法律责任的权利.

posted @ 2019-12-11 10:55  瘦风  阅读(216)  评论(0编辑  收藏