制作一个centos+jdk8+tomcatd9镜像
docker解析:
1、登录docker
docker ecex –it 容器名/容器id /bin/bash
例如:
docker exec –it tomcat /bin/bash
1)、使用docker attach进入Docker容器,存在多个窗口同步和拥塞问题
sudo docker attach 44fc0f0582d9
2)、使用SSH进入Docker容器(不建议)
3)、使用nsenter进入Docker容器
4)、docker inspect 查看容器信息
sudo docker inspect tomcat
5)、使用docker exec进入Docker容器
sudo docker exec --help
sudo docker exec -it tomcat /bin/bash
sudo docker exec -it mytomcat /bin/bash
2、查看容器大小
说明:Docker容器是基于镜像的读写层,它是可读可写的。读写某个文件的时候,是从镜像中将那个文件复制到容器的读写层,然后对复制的文件进行读写,而原文件依然在镜像中。而且,这个容器的读写层也是占用磁盘空间的。
步骤1:先确认容器文件的默认路径
默认情况下为/var/lib/docker/containers
步骤2:进入容器目录
cd /var/lib/docker/containersdu -sh *
步骤3:查看所有容器的大小
du -sh *
步骤3:查看某个容器的大小
du -sh <容器id>
2、查看有什么目录
一般在根目录查看docker 的目录或者比较特殊的一个目录,本次用例就是/z/docker有的是docker-java-home
3、测试打包一个docker
centos为原版增加jdk和tomcat
1)拉取一个centos
docker pull centos
2)准备jdk8和tomcat
创建工作目录, mkdir -p /z/docker
准备root下已经上传了jdk和tomcat
cp本机的jdk到/z/docker目录下
tar -zxvf apache-tomcat-9.0.8.tar.gz -C /z/docker
tar -zxvf jdk-8u91-linux-x64.tar.gz -C /z/docker
解压到目录/z/docker下, 并重命名为jdk
并重命名为jdk
mv jdk1.8.0_91 jdk
mv apache-tomcat-9.0.8 tomcat
3)删掉jdk文件夹下多余文件, 降低build的镜像大小
rm -rf /z/docker/jdk/*src.zip \
/z/docker/jdk/lib/missioncontrol \
/z/docker/jdk/lib/visualvm \
/z/docker/jdk/lib/*javafx* \
/z/docker/jdk/jre/lib/plugin.jar \
/z/docker/jdk/jre/lib/ext/jfxrt.jar \
/z/docker/jdk/jre/bin/javaws \
/z/docker/jdk/jre/lib/javaws.jar \
/z/docker/jdk/jre/lib/desktop \
/z/docker/jdk/jre/plugin \
/z/docker/jdk/jre/lib/deploy* \
/z/docker/jdk/jre/lib/*javafx* \
/z/docker/jdk/jre/lib/*jfx* \
/z/docker/jdk/jre/lib/amd64/libdecora_sse.so \
/z/docker/jdk/jre/lib/amd64/libprism_*.so \
/z/docker/jdk/jre/lib/amd64/libfxplugins.so \
/z/docker/jdk/jre/lib/amd64/libglass.so \
/z/docker/jdk/jre/lib/amd64/libgstreamer-lite.so \
/z/docker/jdk/jre/lib/amd64/libjavafx*.so \
/z/docker/jdk/jre/lib/amd64/libjfx*.so
4)进入/z/docker目录, 在当前目录下创建Dockerfile文件
cd /z/docker
vim Dockerfile
#插入以下内容
#使用的基础镜像
FROM centos
#作者信息
MAINTAINER luhq7 "cztx29@126.com"
#创建目录
RUN mkdir -p /z/java/jdk
#把当前目录下的jdk文件夹添加到镜像
ADD jdk /z/java/jdk
#创建tomcat目录
RUN mkdir -p /z/java/tomcat
#把当前目录下的tomcat文件夹添加到镜像
ADD tomcat /z/java/tomcat
#设置工作目录,这个命令是用来切换工作目录的,相当于cd命令
WORKDIR /z/java/tomcat
#添加环境变量
ENV JAVA_HOME /z/java/jdk
ENV CATALINA_HOME /z/java/tomcat
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
#暴露8080端口
EXPOSE 8080
#启动时运行tomcat
CMD ["/z/java/tomcat/bin/catalina.sh","run"]
5)、开始制作
docker build -t repos_local/centos-jdk-tomcat:0.0.1 .
最后的 . 表示Dockerfile放在本目录
如果是/home/表示Dockerfile在根目录下的home目录下
6)、docker ps和docker images查看一下镜像
7)、运行一个容器
docker run -d --hostname mytomcat --name mytomcat -p 16002:8080 repos_local/centos-jdk-tomcat:0.0.1
报错:需要重新启动docker进程
8)、重启docker
sudo systemctl restart docker
9)、打开防火墙对应端口
vim /etc/sysconfig/iptables
增加一行,端口为15672的限制取消
防火墙重新生效
service iptables restart
查看那些端口可用:
netstat -lntp
docker start mytomcat
OK至此完成docker(centos + tomcat +jdk)的制作
另 , 可以直接使用官方的tomcat镜像 , 把自己的网站目录映射到容器内部
mkdir /webapps
docker run -d --hostname webtomcat --name webtomcat -p 16003:8080 -v /webapps/:/z/java/tomcat/webapps/ repos_local/centos-jdk-tomcat:0.0.1
下一次制作一个centos +jar包的镜像
再一次制作一个centos +War包的镜像
制作一个centos+jdk8+tomcatd9镜像的更多相关文章
- 用ultraISO 制作一个MSdos启动软盘镜像
见过软盘,但是没用过,在虚拟机里试试. 磁带,软盘,光盘,硬盘…… 储存介质一代代更新,看到的img.iso文件都是叫做镜像文件(image file ).image 即图片照片,所谓的image f ...
- 使用UNetbootin工具制作的CentOS 6.9镜像U盘在启动安装过程中出现:unable to read package metadata.this may be due to a missing repodata directory
1.制作: 2.重命名文件 (前) (后) 这些文件是拷贝另一个得来的,并且后面的命名是根据repomd.xm这个文件来的. 参考: http://blog.csdn.net/maijunjin/ar ...
- Docker 学习:制作一个dockerfile
dockerfile, 主要是四部分组成:基础镜像信息.维护者信息.镜像操作指令.容器启动执行指令. step 1: 按照语法,如下写一个centos操作系统的nignx镜像. 然后记得:wq保存和退 ...
- CentOS 6.5 网络服务器功能的实现②:运用光盘(镜像)制作一个本地yum源
在用Linux安装软件时(rpm安装方式),有时会出现“包依赖”的现象.因此,我们可以用yum工具来实现一次性安装所有rpm工具包的功能. 实例:在此服务器上用yum的方式安装DHCP服务和TFTP服 ...
- Eucalyptus-利用镜像启动一个Centos实例
1.前言 使用kvm制作Eucalyptus镜像(Centos6.5为例)——http://www.cnblogs.com/gis-luq/p/3990795.html 上一篇我们讲述了如何利用kvm ...
- Docker下制作一个容器镜像
操作过程描述: (1)先基于centos的镜像启动一个centos容器 (2)在这个容器中安装nginx (3)然后把这个已经安装了nginx的容器制作成一个docker的镜像 操作:docker c ...
- 转:如何制作一个定制的 PHP 基础 Docker 镜像(一)
原文来自于:http://open.daocloud.io/ru-he-zhi-zuo-yi-ge-ding-zhi-de-php-ji-chu-docker-jing-xiang/ 目标:准备一个定 ...
- 从零开始构建一个centos+jdk7+tomcat7的docker镜像文件
从零开始构建一个centos+jdk7+tomcat7的镜像文件 centos7系统下docker运行环境的搭建 准备centos基础镜像 docker pull centos 或者直接下载我准备好的 ...
- Docker启动一个Centos镜像
docker镜像的获取与使用 docker中使用centos7镜像 接着上文,我们下载完成一个Centos镜像之后,开始启动 #运行命令 docker run -d -i -t <imageID ...
随机推荐
- 如何判断Linux下 网卡是虚拟还是物理网卡?
ifconfig命令可以查看Linux系统中正在使用的网卡,包括物理网卡和虚拟网卡,如果想要查看Linux系统中全部的网卡,可以查看/proc/net/dev文件,那如何区分网卡是虚拟还是物理的呢? ...
- gitlab怎么用
0101在个人资料里面去设置去找密钥.... 0102 点击生成密钥 0103 在文件夹的命令行输入 ssh-keygen -t rsa -C "your.email@example.com ...
- 可视化图表库--goJS
GoJS是Northwoods Software的产品.Northwoods Software创立于1995年,专注于交互图控件和类库.旗下四款产品: GoJS:用于在HTML上创建交互图的纯java ...
- Vue源码分析(一) : new Vue() 做了什么
Vue源码分析(一) : new Vue() 做了什么 author: @TiffanysBear 在了解new Vue做了什么之前,我们先对Vue源码做一些基础的了解,如果你已经对基础的源码目录设计 ...
- vue 弹窗式 滑动图片验证码
效果图: 具体代码: test.vue //整个页面是个弹窗 visible 控制弹窗的显示关闭 默认打开 <template> <div class="mask_laye ...
- BaggingClassifier
写在前面 Ensemble methods 组合模型的方式大致为四个:/bagging / boosting / voting / stacking ,此文主要简单叙述 bagging算法. 算法 ...
- 腾讯基于 Flink 的实时流计算平台演进之路
https://mp.weixin.qq.com/s/MGnG_Mpf6CUQWLJHvmWqLA
- 如果你处理的是字节,那么 Go 语言可能是一个不错的选择。 如果你处理的是数据,那么 Go 语言可能不是一个好的选择。
用Go语言编程的利与弊 AI前线小组 译 InfoQ 今天
- python 了解一点属性的延迟计算
写在前面 本以为百度搜索这类知识的文章应该有很多, 然后我看了前面几篇后,基本上都是类似的内容,我想找些与众不同的博客看下,来拖宽这方面的广度,我就随机点到了第10页,结果第10页的内容基本跟属性的延 ...
- nginx里面的location 规则匹配
nginx location语法 ~ # 区分大小写的正则匹配 location ~ \.(gif|jpg|png|js|css)$ { #规则D } ~* # 不区分大小写的正则匹配(和~的功能相同 ...