GVKun编程网logo

docker 笔记 【安装 Tomcat】(docker安装部署tomcat)

10

针对docker笔记【安装Tomcat】和docker安装部署tomcat这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展05通过docker安装tomcat、Centos7安装docker

针对docker 笔记 【安装 Tomcat】docker安装部署tomcat这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展05 通过docker安装tomcat、Centos 7 安装 docker ,docker 安装 mysql 、 tomcat、CentOS Docker 安装 Tomcat、Docker 下自定义安装 Tomcat等相关知识,希望可以帮助到你。

本文目录一览:

docker 笔记 【安装 Tomcat】(docker安装部署tomcat)

docker 笔记 【安装 Tomcat】(docker安装部署tomcat)

安装 Tomcat

# 官方的使用
docker run -it --rm tomcat:9.0  # docker run -it --rm,一般用来测试,用完就删除,停止容器后,查不到容器

# 下载再启动
[zjf@iZwz9ancymzviwhi3qyj0gZ ~]$ docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
Digest: sha256:94cc18203335e400dbafcd0633f33c53663b1c1012a13bcad58cced9cd9d1305
Status: Downloaded newer image for tomcat:latest
docker.io/library/tomcat:latest

# 启动后台运行
[zjf@iZwz9ancymzviwhi3qyj0gZ ~]$ docker run -d -p 3051:8080 --name=tomcat01 tomcat

# 测试访问


# 进入容器
[zjf@iZwz9ancymzviwhi3qyj0gZ ~]$ docker exec -it tomcat01 /bin/bash

# 发现问题: 1、linux命令少了。 2、没有webapps。 
# 原因:阿里云镜像的原因-默认是最小的镜像,所有不必要的都剔除掉,保证最小可运行的环境。

思考: 每次部署项目,如果每次都要进入容器是非常码放的: 如果可以在容器外部提供一个映射路径,webapps,

我们在外部房子项目,就能自动同步到内部。

05 通过docker安装tomcat

05 通过docker安装tomcat

tomcat是一款最流行的服务器。本文将阐述在docker当中安装tomcat,并部署我们自己的项目。

1、获取tomcat

docker pull tomcat

2、启动tomcat

#创建宿主机子的路径,用以映射docker安装的tomcat所在的操作系统路径
mkdir -p /root/tomcat/webapps
mkdir -p /root/tomcat/logs
#启动tomcat
docker run  --restart=always --privileged=true -p 8080:8080 -v /root/tomcat/logs:/usr/local/tomcat/logs -v /root/tomcat/webapps:/usr/local/tomcat/webapps --name mytomcat2 tomcat
#查看tomcat是否启动成功
docker ps|grep tomcat

3、测试

#进入宿主机子的映射目录,改变这里等价于改变tomcat容器中的/usr/local/tomcat/webapps
cd /root/tomcat/webapps
#创建一个文件夹test,并在其中创建文件
mkdir test
cd test
echo 'hello wanhe'>>index.html
操作:输入http://192.168.100.192:8080/test/index.html,查看结果。
#进入宿主机子的映射目录,改变这里等价于改变tomcat容器中的/usr/local/tomcat/webapps
cd /root/tomcat/webapps
#创建一个文件夹ROOT,并在其中创建文件
mkdir ROOT
cd ROOT
echo 'this is root'>>index.html
操作:输入http://192.168.100.192:8080/index.html,查看结果。

在实际部署中,在此webapps中放入我们的项目war包并命名为ROOT.war即可

Centos 7 安装 docker ,docker 安装 mysql 、 tomcat

Centos 7 安装 docker ,docker 安装 mysql 、 tomcat

一、安装docker

不要看其他的博客文档。就按照菜鸟教程执行。

菜鸟教程地址: http://www.runoob.com/docker/centos-docker-install.html 

装了几次启动不了。按照这个流程一遍OK 

我的环境是Centos 7, 内核 3.10版本。安装docker CE,社区免费版 

 

移除旧的版本:

$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine

安装一些必要的系统工具:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加软件源信息:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

更新 yum 缓存:

sudo yum makecache fast 

安装 Docker-ce:

sudo yum -y install docker-ce

启动 Docker 后台服务

sudo systemctl start docker

测试运行 hello-world

[root@runoob ~]# docker run hello-world 

 

 

二、设置docker开机自启动 

# systemctl enable docker

# usermod -aG docker root(用户名)

 

 

重新登陆后直接查看,docker已经默认启动了。

 

 

三、docker 安装 MysqL 5.7版本。

 

 

MysqL 5.7安装后,启动MysqL容器

启动MysqL容器:

docker run -p 3306:3306 --name myMysqL -v $PWD/conf:/etc/MysqL/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/MysqL -e MysqL_ROOT_PASSWORD=root -d MysqL:5.7

 

 

-p 3306:3306 将容器的3306端口映射到主机的3306端口。

--name 容器名称。

-v -v $PWD/conf:/etc/MysqL/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/MysqL/my.cnf。

-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。

-v $PWD/data:/var/lib/MysqL :将主机当前目录下的data目录挂载到容器的 /var/lib/MysqL 。

-e MysqL_ROOT_PASSWORD=123456:初始化 root 用户的密码。

 

四、docker 安装 tomcat

docker pull tomcat:8.5 下载8.5版本的tomcat

docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat

启动tomcat容器。

-p 8080:8080:将容器的8080端口映射到主机的8080端口

-v $PWD/test:/usr/local/tomcat/webapps/test:将主机中当前目录下的test挂载到容器的/test

 

 

CentOS Docker 安装 Tomcat

CentOS Docker 安装 Tomcat

CentOS Docker 安装

 

sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

 

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install docker-ce docker-ce-cli containerd.io

如果提示您接受 GPG 密钥,请选是。

启动 Docker。

$ sudo systemctl start docker

通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。

$ sudo docker run hello-world

 

Docker 安装 Tomcat

docker search tomcat

docker pull tomcat

docker run --name tomcat -p 8081:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat

 

 

Docker 下自定义安装 Tomcat

Docker 下自定义安装 Tomcat

服务器环境建好以后,如果要扩展,只需要执行(详细命令到下文中找)
docker run .....
发完版本需要重启服务,执行(详细命令到下文中找)
docker restart [容器的ID]

将文件传到 tomcat 下,可参考  Docker cp 将宿主机上的文件复制到容器中


 

准备文件

apache-tomcat-9.0.31.tar.gz

jdk-8u191-linux-x64.tar.gz


 CentOS上安装Docker。

1.检查内核版本,返回的值大于3.10即可。、
$ uname -r

安装 Docker 

yum -y install docker


 

将tomcat 、jdk 传到 /usr/local/docker目录中

 在java、jdk同级目录下,创建 Dockerfile 文件,文件名不能错,否则后面 build 会检测不到

[root@localhost ~]# cd /usr/local/docker/

[root@localhost docker]# touch Dockerfile 

 

 

Dockerfile 文件内容如下

FROM         centos
MAINTAINER    ChenJun
#把java与tomcat添加到容器中
ADD ./jdk-8u191-linux-x64.tar.gz /usr/local/
ADD ./apache-tomcat-9.0.31.tar.gz /usr/local/
#安装vim编辑器
RUN yum -y install vim
#设置工作访问时候的WORKDIR路径,登录落脚点
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置java与tomcat环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_191
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.31
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.31
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#容器运行时监听的端口
EXPOSE  8080
#启动时运行tomcat
# ENTRYPOINT ["/usr/local/apache-tomcat-9.0.31/bin/startup.sh" ]
# CMD ["/usr/local/apache-tomcat-9.0.31/bin/catalina.sh","run"]
CMD /usr/local/apache-tomcat-9.0.31/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.31/bin/logs/catalina.out

构建

#点表示当前目录 ,也可以直接指定  docker build -t tomcat9 /usr/local/docker

[root@localhost docker]# docker build -t tomcat9 . 

 如果显示超时,可以重启一下 systemctl restart docker

 构建成功后,如处图 

 

启动docker 加上 webapp、logs目录映射

[root@localhost web]# docker run -d -p 9091:8080 --name tomcat9091 -v /opt/web/tomcat9091/webapps:/usr/local/apache-tomcat-9.0.31/webapps -v /opt/web/tomcat9091/logs/:/usr/local/apache-tomcat-9.0.31/logs --privileged=true tomcat9

[root@localhost web]# docker run -d -p 9092:8080 --name tomcat9092 -v /opt/web/tomcat9092/webapps:/usr/local/apache-tomcat-9.0.31/webapps -v /opt/web/tomcat9092/logs/:/usr/local/apache-tomcat-9.0.31/logs --privileged=true tomcat9

 

创建映射后,会自动的在 宿主机上建立相应的目录(tomcat webapps下面原有的目录不会映射过来,不知道为什么,通过 docker exec ... 进去看的时候,容器webapps里面也没有文件

 

 

 

 测试Tomcat

建个测试的war包

 

 

 

 war 包上传到 9091下面,如果不加 test是不会显示的。默认带小猫的页面,不在本地的 webapps下面

 

 

 

 

 

 

 

 

 

 

 

 有时候war包放上去,需要重新服务。这时候可以用命令重启

docker restart [容器的ID]

 查看容器中的内容

[root@localhost docker]# docker exec 07de30dd6e3c ls -l

 

我们今天的关于docker 笔记 【安装 Tomcat】docker安装部署tomcat的分享已经告一段落,感谢您的关注,如果您想了解更多关于05 通过docker安装tomcat、Centos 7 安装 docker ,docker 安装 mysql 、 tomcat、CentOS Docker 安装 Tomcat、Docker 下自定义安装 Tomcat的相关信息,请在本站查询。

本文标签: