1.下载一个tomcat8,解压好改名为tomcat并配置端口为80,删除webapps下的默认的应用,修改tomcat/bin目录下脚本的权限,chmod +x *.sh

2.路径一般放在/usr/local目录下

3.配置docker信任私库的ssl

/etc/docker配置daemon.json文件

cat <<EOF >> /etc/docker/daemon.json
{
"insecure-registries": ["registry.fpi-inc.hz"]
}
EOF
systemctl restart docker

4.编写Dockerfile如下:

FROM mcr.microsoft.com/java/jre:8u192-zulu-alpine

LABEL container="XX"

COPY tomcat /usr/local/tomcat

ENV TZ=Asia/Shanghai

ENV CATALINA_HOME=/usr/local/tomcat

ENV CATALINA_BASE=/usr/local/tomcat

ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/tomcat/lib:/usr/local/tomcat/bin

EXPOSE 80

CMD ["catalina.sh", "run"]



执行命令docker build -t tomcat:8-jre8-alpine .创建镜像

执行命令docker images|grep tomcat查看镜像

过程中遇到的问题:

解决办法:

代理服务器使用proxy

这一步在能够访问外网的服务器上执行,此后客户端的网络请求会通过这个服务器转发

mkdir -p ~/proxy
cd ~/proxy
cat <<EOF >>startup.sh
#!/bin/sh docker rm -f tinyproxy
docker run -d --name tinyproxy -p 8888:8888 dannydirect/tinyproxy:latest ANY
EOF
chmod +x startup.sh
./startup.sh

docker通过代理

这一步可以使服务器的docker命令通过代理(docker search、push、pull、login等)

mkdir -p /etc/systemd/system/docker.service.d/

cat <<EOF > /etc/systemd/system/docker.service.d/http-proxy.conf

[Service]

Environment="HTTP_PROXY=http://172.19.20.100:8888" "NO_PROXY=registry-hz.fpi-inc.site"

EOF systemctl daemon-reload systemctl restart docker

 

docker-构建建tomcat镜像并启动容器的更多相关文章

  1. 【Docker学习之三】Docker查找拉取镜像、启动容器、容器使用

    环境 docker-ce-19.03.1-3.el7.x86_64 CentOS 7 一.查找.拉取镜像.启动容器1.查找镜像-docker search默认查找Docker Hub上的镜像,举例:D ...

  2. 构建Logstash+tomcat镜像(让logstash收集tomcat日志)

    1.首先pull logstash镜像作为父镜像(logstash的Dockerfile在最下面): 2.构建my-logstash镜像,使其在docker镜像实例化时,可以使用自定义的logstas ...

  3. docker常用命令、镜像命令、容器命令、数据卷,使用dockerFile创建镜像,dockefile的语法规则。

    一.docker常用命令? 1. 常用帮助命令 1.1 docker的信息以及版本号 /* docker info 查看docker的信息 images2 docker本身就是一个镜像. docker ...

  4. Docker构建一个node镜像

    0. 设置国内docker镜像源 进入Settings->Daemon->Advanced,添加如下配置. { "registry-mirrors": [ " ...

  5. 使用Docker构建jdk1.8镜像

    一.下载centos镜像 下载自己需要的版本TAG,详见: docker安装指定版本TAG的镜像 $ sudo docker pull centos:centos7 二.下载jdk1.8,并上传到/u ...

  6. Docker 最常用的镜像命令和容器命令

    本文列出了 Docker 使用过程中最常用的镜像命令和容器命令,以及教大家如何操作容器数据卷,实现容器数据的备份.熟练练习这些命令以后,再来一些简单的应用部署练习,大家就可以学习 Docker 的镜像 ...

  7. Docker最常用的镜像命令和容器命令

    一.镜像相关命令 官方文档:https://docs.docker.com/referenc 1.1查看镜像 [root@localhost ~]# docker images REPOSITORY ...

  8. docker制作jdk+tomcat镜像

    docker部署TOMCAT项目 一.内核升级 [root@test01 ~]# uname -r   #内核查看确认 2.6.32-696.16.1.el6.x86_64 [root@test01 ...

  9. 使用Docker构建基于centos7镜像的python环境

    Dcokerfile配置信息 ############################################## # 基于centos7构建python3运行环境 # 构建命令: 在Dock ...

随机推荐

  1. SQLite - C/C++接口 API(一)

    1.sqlite3_open(const char *filename, sqlite3 **ppDb) 该例程打开一个指向 SQLite 数据库文件的连接,返回一个用于其他 SQLite 程序的数据 ...

  2. Linux - 找到正在使用的 Shell 是哪个

    1. ps -p $$ 一个名为 "$$" (这是shell的特殊参数),表示当前你正在运行的 shell 实例的 PID 2. echo $0 3. echo $SHELL - ...

  3. Android系统架构(图解)

    下图是 Android 操作系统的架构,架构包括 4 层,由上到下依次是应用程序层.应用程序框架层.核心类库和 Linux 内核.其中,核心类库中包含系统库及 Android 运行环境. 图1  An ...

  4. twisted task.cpperator

    twisted task.cpperator 1.      twisted task.cpperator 1.1.    简介-cooperator 官方文档: https://twistedmat ...

  5. 开启glassfish安全管理允许远程访问das

    root@localhost:/opt/glassfish3/bin# ./asadmin enable-secure-admin remote failure: 至少有一个管理员用户的口令为空, 安 ...

  6. Jedis实现频道的订阅,取消订阅

     第一步:创建一个发布者 package work; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; i ...

  7. [C++基本语法:从菜鸟变成大佬系列,就像1,2,3那么简单](七):C++的修饰符

    修饰符是什么? C++允许char,int和double数据类型在它们之前有修饰符.修饰符用于改变基本类型的含义,以便更精确地满足各种情况的需要. 这里列出了数据类型修饰符: signed unsig ...

  8. 我的B站主页:https://space.bilibili.com/611212 内有视频题解

    我的B站主页:https://space.bilibili.com/611212 内有视频题解

  9. laravel nginx下 css 和js 加载 重写规则

    server { listen 80; server_name test.hanwen.com; #charset koi8-r; #access_log logs/host.access.log m ...

  10. 多数据库:SQLHelper

    //=============================================================================== // This file is ba ...