容器下安装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的使用二的更多相关文章

  1. Linux中docker的使用(2)

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

  2. Linux中docker的使用

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

  3. Linux中文件函数(二)

    一.link.linkat.unlink.unlinkat.remove函数 创建一个指向现有文件的链接的方法是使用link函数或linkat函数.函数的原型为: #include <unist ...

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

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

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

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

  6. Arch系Linux中安装Docker

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

  7. Docker学习笔记二(linux下安装Docker)

    Docker学习笔记二(linux下安装Docker) 1.在线安装linux Docker 这种方式首先要保证linux 环境下可以上网,当然,小编是在自己的电脑上安装了虚拟机,在虚拟机上安装了,l ...

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

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

  9. 浅谈Linux中的信号处理机制(二)

    首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号处理机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Lin ...

随机推荐

  1. mock和axios常见的传参方式

    第一次接手项目,传参方式还有些吃力,因此做一下总结. 首先我们需要会看swagger中的接口.里面写了某个接口需要接收什么样的值,前端怎么传递这个值 在mock中的传参方式: mock中传参的方式有两 ...

  2. [Luogu5384][Cnoi2019] 雪松果树

    传送门 虽然这题是一道二合一,也不算难,但还是学到了很多东西啊,\(k\) 级儿子个数的五种求法!!我还是觉得四种比较好( \(k\) 级儿子个数有五种求法,你知道么? --鲁迅 首先 \(k\) 级 ...

  3. [考试反思]0813NOIP模拟测试20

    咕了两天,补一下. 4个AK的,210是第10,190的第15并列一大排,我个傻子160排第29. 历史新低,但是心态还好. 真是没想到会一天考两场.中午没回去睡觉晚上考试... 困倒是其次,关键还是 ...

  4. Laravel + Vue + Element 考勤应用 - 人力资源系统

    项目地址 Bee 介绍 Bee 是人力资源系统中的考勤应用,主要功能用于员工申请假单.Bee具有较高的性能.扩展性等,其中包括前后端分离.插拔式的规则验证(验证器).数据过滤(装饰器).消息队列等,后 ...

  5. P4544 [USACO10NOV]购买饲料Buying Feed

    额,直接思路就dp吧.(我还想了想最短路之类的233但事实证明不行2333.....) 直入主题: 化简题意:在x轴上有n个点,坐标为xi.从原点出发,目标点为e,在途中需要收集K重量的物品,在每个点 ...

  6. Android Studio接谷歌原生登录

    目录 前言 AndroidStudio server_client_id @ 前言 准备 近日,公司要求上线海外市场,需要接入海外SDK,首先上架的是GooglePlay,需要先接入GooglePla ...

  7. ubuntu中nfs安装

    Ubuntu Nfs服务器安装 nfs服务器在嵌入式开发中非常常用,可以实现主机和开发板共享文件.    1.安装软件包    sudo apt-get install nfs-common nfs- ...

  8. 005.Kubernetes二进制部署kubectl

    一 部署 kubectl 1.1 安装kubectl [root@k8smaster01 ~]# cd /opt/k8s/work [root@k8smaster01 work]# wget http ...

  9. 比较器中的comparing方法以及涉及到的知识

    今天在学习Java核心技术集合程序清单9-3时遇到了问题. 代码如下 public class TreeSetTest { public static void main(String[] args) ...

  10. PHP Laravel5实现的RBAC权限管理操作示例

    根据不同的权限,在菜单栏显示不同的功能,只对菜单进行了限制,若对路由也进行限制,可以根据菜单的例子,请自行完善,开发.下面请认真学习一下laravel的RBAC设计 1.建表(用户表.角色表.权限表. ...