容器下安装jdk和tomcat:
通过挂载文件的方法,把宿主机上的文件挂载到容器中,然后解压到opt目录下:
tar -zxvf 包名 -C /opt/
/opt目录下
drwxr-xr-x 8 10 143 255 Dec 13 00:50 jdk1.8.0_121
drwxr-xr-x 9 root root 160 Mar 15 00:48 tomcat8-9080

配置环境变量:vi /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_121
export JAVA_BIN=/opt/jdk1.8.0_121/bin
export JRE_HOME=/opt/jdk1.8.0_121/jre
export PATH=$PATH:$JAVA_HOME/bin:JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JAVA_BIN JRE_HOME PATH CLASSPATH

##########docker tomcat###########
CATALINA_BASE=/opt/tomcat8-9080
CATALINA_HOME=/opt/tomcat8-9080
TOMCAT_HOME=/opt/tomcat8-9080
export CATALINA_BASE CATALINA_HOME TOMCAT_HOME
##########docker tomcat############

新增tomcat的启动文件:vi /opt/tomcat8-9080/bin/startup.sh 
# Export environment variable
source /etc/profile
# Start tomcat
bash /opt/tomcat8-9080/bin/catalina.sh run

增加启动文件的执行权限:
chmod u+x ./startup.sh

然后可以把当前容器转化成一个镜像进行保存,再通过镜像生成一个容器
docker commit 被转的容器id 镜像仓库/镜像名(镜像名之前没有就创建,之前存在就替换)
然后docker images 查看一下是否生成镜像成功了。

通过镜像生成一个容器,并且指定容器的端口和执行tomcat
docker run -d -p 18080:9080 --name test01 centos-fx01 /opt/tomcat8-9080/bin/startup.sh

然后通过浏览器访问即可:
http://宿主机的外网ip:18080

或者是内网的,可以通过如下访问:
http://容器ip:9080
==================================================================================
查看容器的ip地址:
创建一个docker容器,docker系统会自动为该容器分配一个ip地址,通常是172.17开头。

我们可以在主机上用 docker inspect 命令 或者进入容器用ifconfig命令来查看容器的ip地址。

方法一:在容器里面ifconfig
[root@4c9ce5696573 /]# yum install net-tools

[root@4c9ce5696573 /]# ifconfig 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.3 netmask 255.255.0.0 broadcast 0.0.0.0
inet6 fe80::42:acff:fe11:3 prefixlen 64 scopeid 0x20<link>
ether 02:42:ac:11:00:03 txqueuelen 0 (Ethernet)
RX packets 1673 bytes 10554255 (10.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1417 bytes 97375 (95.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

方法二:
[root@izuf63bjp8ts8nkl13pxh1z /]# docker inspect --format='{{.NetworkSettings.IPAddress}}' tomcat8-9080
172.17.0.3
[root@izuf63bjp8ts8nkl13pxh1z /]# docker inspect --format='{{.NetworkSettings.IPAddress}}' test01
172.17.0.2

或者是直接docker inspect +容器名或容器id,在详细信息里面查看。

方法三:
到宿主机的容器映射文件中查看:
/var/lib/docker/containers/c105873b15a1bf6a22002ceb27d91b35109dc156cad4cc27768f9f5ee61f8270下的hosts文件最下面一行:

172.17.0.2 c105873b15a1

=================================================================================

docker exec -it test01 /bin/bash      可以进入已经在运行的docker。如果attach进不了的,可以使用这个方式进入。

==================================================================================

用外网地址访问到docker里面部署的tomcat

前提条件是:docker里面已经部署了jdk和tomcat,端口号假设为9080

然后在宿主机上输入:

docker run -it -p 48000:9080 --name testtomcat docker.io/tomcat-fx  /bin/bash

命令说明:

-it 指进入交互式模式

-p 指定宿主机端口号 对应 该docker容器的端口号

--name  给创建的容器取名字 ,这里取名叫testtomcat

docker.io/tomcat-fx  指用哪个镜像来创建这个容器,这里也可以用镜像id号代替

/bin/bash   指进入容器后,执行的命令。

容器创建成功后,进入容器,启动tomcat。然后就可以通过浏览器进行访问了:

http://外网(公网)ip:48000/   或

http://私网ip:48000/   或是

curl  http://容器ip:9080    或是

curl  http://127.0.0.1:48000    或是

curl  localhost:48000

Linux中docker的使用(2)的更多相关文章

  1. Linux中docker的使用

    # 列出当前所有正在运行的容器$ docker ps # 列出所有的容器$ docker ps -a # 列出最近一次启动的容器$ docker ps -l # 查看容器的相关信息$ docker i ...

  2. Linux中docker的使用二

    容器下安装jdk和tomcat:通过挂载文件的方法,把宿主机上的文件挂载到容器中,然后解压到opt目录下:tar -zxvf 包名 -C /opt//opt目录下drwxr-xr-x 8 10 143 ...

  3. linux中docker容器安装vi命令详解

    在使用docker容器时,同时你docker里的系统正好是debian或ubuntu的时候,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要 ...

  4. 将自己的SpringBoot应用打包发布到Linux下Docker中

    目录 将自己的SpringBoot应用打包发布到Linux下Docker中 1. 环境介绍 2. 开始前的准备 2.1 开启docker远程连接 2.2 新建SpringBoot项目 3. 开始构建我 ...

  5. Arch系Linux中安装Docker

    Arch系Linux中安装Docker 1. 下载最新版docker $ sudo pacman -Syu docker 2. 免sudo执行docker $ sudo gpasswd -a ${US ...

  6. Linux或Docker里安装minio / Docker中安装h5ai

    此文为单节点搭建操作 Linux中搭建minio 对象存储服务器 下载minio安装包 wget https://dl.minio.io/server/minio/release/linux-amd6 ...

  7. 使用VS把ASP.NET 5的应用发布到Linux的Docker上

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:我相信未来应用程序的部署模式首选一定会是Docker,所以.NET社区的朋友也不应该忽 ...

  8. linux --- 9. docker 容器 和 rabbitmq 队列

    一. docker 容器 1.docker是什么? .linux下容器技术有很多,docker是做的最杰出的一款 .docker能够支撑阿里双十一,京东618的业务,说明,性能,安全性不得差 .doc ...

  9. Linux通过docker安装运行酷Q--用QQ骰子君进行跑团

    Linux通过docker安装运行酷Q 文:铁乐与猫 需求:和小伙伴周末进行愉快的TRPG跑团,需要在QQ讨论组上加了qq小号后,将qq小号用酷Q配合投骰的应用变成骰子君. 限制:我个人的云计算服务器 ...

随机推荐

  1. ArcGIS中的坐标系:基本概念和常用操作(一)

    本文呢是主要是借鉴李郎平李大大的博士论文和百度百科,里面还有一点点我自己的理解,希望能帮助自己加深对于坐标系的认识. 李大大的博客:http://blog.sciencenet.cn/u/Brume ...

  2. ArcMap图层属性表中添加图片

    一看标题是不是有点懵?懵就对了!刚接触到的时候我也有点懵,属性表不是都是文本啊数字啊之类的格式,怎么还可以存图片,下面就带大家来看看吧! 一.关于图层入库问题 图层进入数据库和图层以shp格式存储时, ...

  3. C#实现按键计算器功能2(增强版)

    1.   实验目的 (  1)熟悉C#语言的使用和语法知识 2.   实验要求 (1)设计简单的含交互界面的计算器软件,具有较强的用户体验感. (2)使用C#语言进行编程,创建窗体应用程序. (3)实 ...

  4. appium-doctor问题

    在电脑上安装Appium,打开CDM运行appium-doctor,运行报错提示如下 检查运营Java.javac.java -version均有返回值,说明我的配置是成功,输入where Java, ...

  5. TIME_WAIT

    前言 请说说你对TCP连接中time_wait状态的理解 解答: 先上TCP的状态变迁图 1. time_wait状态如何产生? 由上面的变迁图,首先调用close()发起主动关闭的一方,在发送最后一 ...

  6. 关于使用deepin在linux下安装mysql出现Can't connect to local MySQL server through socket '/tmp/mysql/mysql.sock' (2)的解决方法

    根据目录/etc/mysql打开文件debain.cnf 此时文本里的内容为 # Automatically generated for Debian scripts. DO NOT TOUCH![c ...

  7. 小妖精的完美游戏教室——buff系统

    作者:小妖精Balous,未经作者允许,任何个人与单位不得将此源代码用于商业化项目 #region buff /// <summary> /// 是否魔法免疫,魔法免疫的生物不会受到除自己 ...

  8. socket端口绑定后通过bat干掉

    @echo off::port为需要去绑定端口set port=8888for /f "tokens=5 delims= " %%a in ('netstat -ano ^|fin ...

  9. centos7使用cronolog分割tomcat8.5的catalina.out日志

    1.安装cronolog wget https://files.cnblogs.com/files/crazyzero/cronolog-1.6.2.tar.gz tar -zxvf cronolog ...

  10. vue-cli项目在IE下运行钩子函数抛出异常“ReferenceError: “Promise”未定义&quot;”的解决办法

    兼容IE是个坑,低版本IE很多都没法跑起来 问题现象:vue-cli项目在IE下运行,会在钩子函数出现 ReferenceError: “Promise”未定义 解决办法: step1:安装最新的we ...