Linux中docker的使用二
容器下安装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的使用二的更多相关文章
- Linux中docker的使用(2)
容器下安装jdk和tomcat:通过挂载文件的方法,把宿主机上的文件挂载到容器中,然后解压到opt目录下:tar -zxvf 包名 -C /opt//opt目录下drwxr-xr-x 8 10 143 ...
- Linux中docker的使用
# 列出当前所有正在运行的容器$ docker ps # 列出所有的容器$ docker ps -a # 列出最近一次启动的容器$ docker ps -l # 查看容器的相关信息$ docker i ...
- Linux中文件函数(二)
一.link.linkat.unlink.unlinkat.remove函数 创建一个指向现有文件的链接的方法是使用link函数或linkat函数.函数的原型为: #include <unist ...
- linux中docker容器安装vi命令详解
在使用docker容器时,同时你docker里的系统正好是debian或ubuntu的时候,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要 ...
- 将自己的SpringBoot应用打包发布到Linux下Docker中
目录 将自己的SpringBoot应用打包发布到Linux下Docker中 1. 环境介绍 2. 开始前的准备 2.1 开启docker远程连接 2.2 新建SpringBoot项目 3. 开始构建我 ...
- Arch系Linux中安装Docker
Arch系Linux中安装Docker 1. 下载最新版docker $ sudo pacman -Syu docker 2. 免sudo执行docker $ sudo gpasswd -a ${US ...
- Docker学习笔记二(linux下安装Docker)
Docker学习笔记二(linux下安装Docker) 1.在线安装linux Docker 这种方式首先要保证linux 环境下可以上网,当然,小编是在自己的电脑上安装了虚拟机,在虚拟机上安装了,l ...
- Linux或Docker里安装minio / Docker中安装h5ai
此文为单节点搭建操作 Linux中搭建minio 对象存储服务器 下载minio安装包 wget https://dl.minio.io/server/minio/release/linux-amd6 ...
- 浅谈Linux中的信号处理机制(二)
首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号处理机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Lin ...
随机推荐
- 第三十一章 System V信号量(二)
用信号量实现进程互斥示例 #include <unistd.h> #include <sys/types.h> #include <stdlib.h> #inclu ...
- [考试反思]0803NOIP模拟测试12:偿还
嗯,rank5.没什么可评价的,高不算高低不算低. 一套好题,被我浪费了. 离上面280的大神差的有点远. 分机房的绝响就要来临. 越来越感觉自己变菜了,整体的能力水平在下滑. 说的不只是考试,包括平 ...
- Linux下Redis安装与配置
http://www.cnblogs.com/_popc/p/3684835.html
- 史上最全的excel读写技术分享
目录 简介 导出excel常用的几种方法 POI CSV jxl jxls easyexcel 快速入门 代码解读 总结 常用API 单元格样式 合并单元格 数据样式 多sheet设置 单元格添加超链 ...
- 基于华为物联网IOT的应用开发 ---界面管理开发
在前面随笔<基于华为物联网IOT的应用开发 --- 基于.net 的SDK封装>介绍过IOT中应用侧SDK的封装,主要就是基于华为IOT的应用侧封装,以便在应用系统中进行调用.应用侧SDK ...
- python基础-闭包函数和装饰器
闭包函数和装饰器 闭包函数 概念:在函数中(嵌套)定义另一个函数时,内部函数引用了外层函数的名字. 特性 闭包函数必须在函数内部定义 闭包函数可引用外层函数的名字 闭包函数是函数嵌套.函数对象.名称空 ...
- Java Part 001( 01_01_Java概述 )
Java作为编程语言, 甚至超出了语言的范畴, 成为一种开发平台, 一种开发规范. Java语言相关的JavaEE规范里, 包含了时下最流行的各种软件工程理念, 学习Java相当于系统的学习了软件开发 ...
- Dockerfile介绍及指令详情
Dockerfile简介: 镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么哪些无法重复的问题.镜 ...
- DEX文件解析---1、dex文件头解析
DEX文件解析---1.dex文件头解析 一.dex文件 dex文件是Android平台上可执行文件的一种文件类型.它的文件格式可以下面这张图概括: dex文件头一般固定为0x70个字 ...
- 外行人都能看懂的WebFlux,错过了血亏!
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 本文知识点架构: 如果有关注我公众号文章的同学就会发 ...