Docker 安装与Tomcat部署
虚拟机:VMware
Linux环境:CentOS 7
镜像(images):
容器(contenor):
一、VMware安装Linux镜像
1.Linux配置固定IP
Linux虚拟机配置静态IP
二、FinalShell远程连接Linux系统
FinalShell:用于远程连接Linux。方便进行文件上传和下载。
1.查看Linux的IP地址
$: ifconfig
2.配置远程连接
3.连接成功
三、Linux安装Docker
1.切换成root用户并输入超级管理员密码:
$: sudo root
2.使用阿里云资源安装Docker:
$: curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
3.设置Docker开机自启动:
$: systemctl enable docker #开机自启
$: systemctl start docker #启动 Docker
4.配置镜像源:
可快速、高效地拉取镜像。Docker默认镜像仓库在国外,拉取速度可能比较慢。
①配置镜像源:
$: vim /etc/docker/daemon.json
ps: vim或vi编辑器:
指令:i 插入或修改;
指令:Esc 提出插入或修改
指令:wq! 保存修改并退出
指令:q! 退出不修改
在daemon.json中配置数据源(此次使用中科大的数据源,也可使用其他,如阿里云)
{
"registry-mirrors": ["http://docker.mirrors.ustc.edu.cn"]
}
②重新加载docker配置:
$: systemctl daemon-reload
$: systemctl restart docker
③查看Docker服务情况:
$: systemctl status docker.service
5.报错解决:
①启动Docker报错如图:
解决方式:
关闭防火墙,重启Docker
$: systemctl status firewalld ##查看防火墙状态
$: systemctl stop firewalld ##关闭防火墙
$: systemctl restart docker ##重启 Docker
②宿主机无法访问Docker
解决方式如下:
$: sudo service docker stop
$: sudo ip link set dev docker0 down ##关闭docker虚拟网卡
$: sudo brctl delbr docker0
$: sudo iptables -t nat -F POSTROUTING
$: sudo brctl addbr docker0 ##172.16.10.1/24 是Docker在Linux的默认地址
$: sudo ip addr add 172.16.10.1/24 dev docker0
$: sudo ip link set dev docker0 up ##开启docker虚拟网卡
$: vim /etc/docker/daemon.json
{
"registry-mirrors": ["http://224ac393.m.daocloud.io"],
"bip": "172.16.10.1/24"
}
$: systemctl restart docker
四、Docker连接安全协议配置(TLS)
需要开放Docker 2375远程连接端口必须:
Docker连接安全协议配置
五、项目部署
资源文件:
JDK8
Tomcat
1.镜像的制作
①拉取centos 7镜像:
$: docker pull centos:7
查看所有镜像:
$: docker images
②创建目录准备制作镜像:
$: mkdir purui-server && cd /purui-server ##创建并进入目录,用于临时存放制作镜像的文件
③准备JDK和Tomcat
jdk、tomcat、Dockerfile必须在同一目录下面
④创建Dockerfile文件:
Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),用于构建镜像。每一条指令构建一层镜像,因此每一条指令的内容,就是描述该层镜像应当如何构建。
$: vim Dockerfile
FROM centos:7 ## 制作镜像用的,最基础镜像
MAINTAINER Nagisa ## 镜像维护者
## 配置JDK
RUN mkdir /usr/soft
RUN mkdir /usr/local/jdk
COPY jdk-8u221-linux-x64.tar.gz /usr/soft/jdk-8u221-linux-x64.tar.gz
RUN tar xvf /usr/soft/jdk-8u221-linux-x64.tar.gz -C /usr/local/jdk
RUN rm -rf /usr/soft/jdk-8u221-linux-x64.tar.gz
## 配置Tomcat
RUN mkdir -p /usr/local/tomcat
COPY apache-tomcat-9.0.35.tar.gz /usr/soft/apache-tomcat-9.0.35.tar.gz
RUN tar xvf /usr/soft/apache-tomcat-9.0.35.tar.gz -C /usr/local/tomcat
RUN rm -rf /usr/soft/apache-tomcat-9.0.35.tar.gz
## 配置环境变量
ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_221 ## JDK 压缩包解压后的名称
ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-9.0.35 ## Tomcat解压后的名称
ENV PATH $PATH:$JAVA_HOME/bin:$CATCHA_HOME/bin
ENV PATH $PATH:$CATCHA_HOME/bin
##在制作镜像的时候,就打包项目拷贝到tomcat webapps目录中
##ADD *****.war /usr/local/tomcat/apache-tomcat-9.0.35/webapps/
## 内部开启服务端口
EXPOSE 8080
## 最后启动sshd进程,防止容器启动后不见
CMD ["./usr/local/tomcat/apache-tomcat-9.0.35/bin/catalina.sh", "run"]
注意: 压缩包解压后的文件名称是什么样的
jdk-8u221-linux-x64.tar.gz 解压后文件夹名称:jdk1.8.0_221
apache-tomcat-9.0.35.tar.gz 解压后文件夹名称:apache-tomcat-9.0.35
⑤制作镜像:
注意以下命令结尾的 . 表示当前目录
$: docker build -t purui/tomcat:0.0.1 .
说明:
生成的镜像名称:purui/tomcat
生成的镜像Tag:0.0.1
制作镜像成功:
查看制作的镜像:
⑥测试生成容器:
$: docker run --name=testServer -p 8080:8080 -d purui/tomcat:0.0.1
以上命令说明:
使用名为:purui/tomcat:0.0.1 的镜像创建一个新的容器运行
设置新容器的名称 --name testServer
设置新容器的端口 -port 8080
$: docker logs -f 97262390e71b ## 通过容器,查看容器启动的日志
或
$: docker logs -f testServer ## 通过容器名称,查看容器启动的日志
以上命令说明:
-f 控制台实时输出日期
97262390e71b 是容器ID
效果如上图。
测试容器启动成功:
2.运行容器
①挂载目录并启动:
首先,将项目文件拷贝到宿主机/usr/local/tomcat/webapps目录下,并执行以下命令
docker run
-d
--name tomcatDev ## 创建的容器名称
-p 8080:8080 ## 宿主机端口:容器内部端口
-v /usr/local/tomcat/webapps:/usr/local/tomcat/apache-tomcat-9.0.35/webapps
--privileged=true ## 允许Docker挂载目录
--restart=always ## Docker启动时,自动运行容器
purui/tomcat:0.0.1 ## 创建容器使用的镜像
运行成功:
ps:需要部署更新项目,只需要将更新的项目,重新拷贝到宿主机/usr/local/tomcat/webapps目录下即可
在这里插入图片描述
文章来源:https://www.toymoban.com/news/detail-420728.html
镜像移植
导出镜像:
docker save -o /images/tomcat9.tar purui/tomcat:0.0.1
导入镜像:
docker load --input tomcat9.tar
docker load -i tomcat9.tar
docker load < tomcat9.tar
Dockerfile 解决问题汇总文章来源地址https://www.toymoban.com/news/detail-420728.html
# 制作镜像使用的基础镜像
FROM centos:7
MAINTAINER Purui
# 设置容器编码:解决容器内部中文乱码、不能识别中文
env LANG en_ZW.utf8
env LC_ALL en_ZW.utf8
# 添加字体 解决容器无宋体字体,导致打印格式的问题
RUN yum install -y fontconfig mkfontscale
RUN mkdir -p /usr/share/fonts/my_fonts
COPY SIMSUN.TTC /usr/share/fonts/my_fonts
RUN chmod -R 755 /usr/share/fonts/my_fonts
RUN mkfontscale && mkfontdir && fc-cache -fv
RUN fc-list
# 配置JDK环境
RUN mkdir /usr/soft
RUN mkdir /usr/local/jdk
COPY jdk-8u221-linux-x64.tar.gz /usr/soft/jdk-8u221-linux-x64.tar.gz
RUN tar xvf /usr/soft/jdk-8u221-linux-x64.tar.gz -C /usr/local/jdk
RUN rm -rf /usr/soft/jdk-8u221-linux-x64.tar.gz
# 配置Java环境
RUN mkdir -p /usr/local/tomcat
COPY apache-tomcat-9.0.35.tar.gz /usr/soft/apache-tomcat-9.0.35.tar.gz
RUN tar xvf /usr/soft/apache-tomcat-9.0.35.tar.gz -C /usr/local/tomcat
RUN rm -rf /usr/soft/apache-tomcat-9.0.35.tar.gz
#配置环境变量
ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_221
ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-9.0.35
ENV PATH $PATH:$JAVA_HOME/bin:$CATCHA_HOME/bin
ENV PATH $PATH:$CATCHA_HOME/bin
# 设置容器端口
EXPOSE 8080
# 设置容器运行,启动tomcat
CMD ["./usr/local/tomcat/apache-tomcat-9.0.35/bin/catalina.sh", "run"]
到了这里,关于Docker 安装与Tomcat部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!