Docker 安装与Tomcat部署

Docker 安装与Tomcat部署

虚拟机:VMware
Linux环境:CentOS 7
Docker 安装与Tomcat部署_第1张图片

镜像(images):
容器(contenor):

一、VMware安装Linux镜像

1.Linux配置固定IP

Linux虚拟机配置静态IP

二、FinalShell远程连接Linux系统

  FinalShell:用于远程连接Linux。方便进行文件上传和下载。

1.查看Linux的IP地址

$: ifconfig

Docker 安装与Tomcat部署_第2张图片

2.配置远程连接

Docker 安装与Tomcat部署_第3张图片

Docker 安装与Tomcat部署_第4张图片

3.连接成功

Docker 安装与Tomcat部署_第5张图片

三、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 安装与Tomcat部署_第6张图片

②重新加载docker配置:

$: systemctl daemon-reload
$: systemctl restart docker

③查看Docker服务情况:

$: systemctl status docker.service

Docker 安装与Tomcat部署_第7张图片

5.报错解决:

①启动Docker报错如图:

Docker 安装与Tomcat部署_第8张图片

解决方式:
关闭防火墙,重启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 安装与Tomcat部署_第9张图片

查看制作的镜像:
Docker 安装与Tomcat部署_第10张图片

⑥测试生成容器:

$: 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
效果如上图。

测试容器启动成功:
Docker 安装与Tomcat部署_第11张图片

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目录下即可
在这里插入图片描述
Docker 安装与Tomcat部署_第12张图片

镜像移植

导出镜像:

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 解决问题汇总

# 制作镜像使用的基础镜像
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,docker,tomcat,linux)