Docker 安装与Tomcat部署

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目录下即可
在这里插入图片描述
在这里插入图片描述

镜像移植

导出镜像:

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"]

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以按照以下步骤来在 Docker 部署 Jenkins 和 Tomcat: 1. 安装 DockerDocker Compose 2. 创建一个 `docker-compose.yml` 文件,内容如下: ```yaml version: '3' services: jenkins: image: jenkins/jenkins:lts ports: - "8080:8080" - "50000:50000" volumes: - jenkins_home:/var/jenkins_home environment: - JAVA_OPTS=-Djenkins.install.runSetupWizard=false tomcat: image: tomcat:9.0.40-jdk8-openjdk ports: - "8081:8080" volumes: - ./webapps:/usr/local/tomcat/webapps volumes: jenkins_home: ``` 该文件定义了两个服务:Jenkins 和 Tomcat。Jenkins 使用 `jenkins/jenkins:lts` 镜像Tomcat 使用 `tomcat:9.0.40-jdk8-openjdk` 镜像。Jenkins 容器会将 8080 和 50000 端口映射到主机的同名端口,Tomcat 容器将 8080 端口映射到主机的 8081 端口。Jenkins 容器通过挂载一个卷来保存 Jenkins 数据,而 Tomcat 容器会将 `./webapps` 目录挂载到容器的 `/usr/local/tomcat/webapps` 目录,以便将 WAR 包部署到容器。 3. 在命令行进入 `docker-compose.yml` 文件所在的目录,使用以下命令启动容器: ``` docker-compose up -d ``` 4. 启动容器后,可以通过浏览器访问 `http://localhost:8080` 来打开 Jenkins 界面。第一次访问时需要输入管理员密码,可以在容器执行以下命令来获取密码: ``` docker exec -it <jenkins_container_id> cat /var/jenkins_home/secrets/initialAdminPassword ``` 其 `<jenkins_container_id>` 是 Jenkins 容器的 ID。 5. Jenkins 启动后,可以安装必要的插件并进行配置,在 Jenkins 创建一个 Maven 项目,然后将构建好的 WAR 包部署Tomcat 容器。可以使用以下命令进入 Tomcat 容器: ``` docker exec -it <tomcat_container_id> /bin/bash ``` 其 `<tomcat_container_id>` 是 Tomcat 容器的 ID。在容器进入 `/usr/local/tomcat/webapps` 目录,将 WAR 包复制到该目录即可自动部署Tomcat 。 希望这些步骤能够帮助你成功在 Docker 部署 Jenkins 和 Tomcat
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值