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
2、查看容器大小
说明:Docker容器是基于镜像的读写层,它是可读可写的。读写某个文件的时候,是从镜像中将那个文件复制到容器的读写层,然后对复制的文件进行读写,而原文件依然在镜像中。而且,这个容器的读写层也是占用磁盘空间的。
步骤1:先确认容器文件的默认路径
默认情况下为/var/lib/docker/containers
步骤2:进入容器目录
cd /var/lib/docker/containersdu -sh *
步骤3:查看所有容器的大小
du -sh *
步骤3:查看某个容器的大小
du -sh <容器id>
2、查看有什么目录
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
#添加环境变量
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放在本目录
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)的制作
Docker 镜像的制作的更多相关文章
- Docker 镜像的制作和使用
镜像 Layer(层) 镜像里的内容是按「层」来组织的,「层」可以复用,一个完整的镜像也可以看做是一个「层」.多个「层」叠加在一起就形成了一个新的镜像,这个镜像也可以作为别的镜像的基础「层」进行更加复 ...
- 基于url-to-pdf-api构建docker镜像,制作一个网页另存服务
基于url-to-pdf-api构建docker镜像,制作一个网页另存服务 业务背景: 需要根据一个url路径打印这个网页的内容 解决方案: 1.使用wkhtml2pdf 2.使用puppeteer ...
- 制作可以 SSH 登录的 Docker 镜像
Docker使用系列一我们把镜像源改为了阿里云的,方便后续的操作. 执行这个命令就把源地址改为阿里的: curl https://git.oschina.net/feedao/Docker_shell ...
- Nginx+PHP7.3.9 Docker镜像制作
最近因项目需要制作了多个版本的php docker镜像,制作过程可谓是一波三折,因基于yum的方式安装php的方式在安装扩展插件时很不方便,不容易找到插件对应的yum源,所以PHP在docker镜像中 ...
- presto-gateway 试用以及docker 镜像制作
presto-gateway 是 lyft 团队开源 的prestodb 的工具.以下是一个简单的试用,以及碰到问题的解决 还有就是docker 镜像的制作 Dockerfile 很简单,本地构建然后 ...
- Docker之从零开始制作docker镜像
以前学习docker是直接docker pull命令直接拉取Linux中已有镜像,并创建容器,添加应用程序,但是docker镜像一开始是怎么来的呢?下面将从零开始介绍整个docker镜像的制作过程(初 ...
- Docker之commit制作镜像
一.docker是什么? Docker是一个为开发人员和系统管理员提供分布式应用程序的开放平台.它是一个开源的容器引擎,基于Go语言并遵从Apche2.0协议开源. 功能:Docker可以让开发者打包 ...
- Docker、Dockerfile、Docker镜像、容器这些都是什么鸟?
老生常谈,再再再……普及一下: Docker:最早是dotCloud公司出品的一套容器管理工具,但后来Docker慢慢火起来了,连公司名字都从dotCloud改成Docker. Dockerfile: ...
- haproxy 2.0 dataplaneapi docker 镜像
为了方便测试dataplaneapi 基于官方的docker镜像,制作了一个简单的包含dataplaneapi 的镜像 下载dataplaneapi https://github.com/haprox ...
随机推荐
- 2019.7.9 校内测试 T1挖地雷
这一次是交流测试?边交流边测试(滑稽 挖地雷 这个题是一个递推问题. 首先我们看第一个格子,因为它只影响了它的上面和右上面这两个地方是否有雷. 我们可以分3种情况讨论: 1. 第一个格子的数字是2: ...
- Web开发入门教程:Pycharm轻松创建Flask项目
Web开发入门教程:Pycharm轻松创建Flask项目 打开Pycharm的file,选择创建新的项目,然后弹出对话框,我们可以看到里面有很多的案例,Flask.Django等等,我们选择生成Fla ...
- flask + nginx + uwsgi + ubuntu18.04部署python restful接口
目录 参考链接 效果展示 一.准备工作 1.1 可运行的python demo: 1.2 更新系统环境 二.创建python虚拟环境 三.设置flask应用程序 四.配置uWSGI 五.设置系统启动 ...
- ICEM—二维混合网格对齐节点
原视频下载地址: https://pan.baidu.com/s/1bpnjfT9 密码: jeuv
- Flutter移动电商实战 --(36)FlutterToast插件使用
https://github.com/PonnamKarthik/FlutterToast fluttertoast: ^3.0.1 category_page.dart页面添加引用 import ' ...
- 数据库与linux中quota的作用
linux命令,quota 命令显示磁盘使用情况和限额.缺省情况下,或者带 -u 标志,只显示用户限额.quota 命令报告 /etc/filesystems 文件中列出的所有文件系统的限额.如果 q ...
- SQL-W3School-高级:SQL UNIQUE 约束
ylbtech-SQL-W3School-高级:SQL UNIQUE 约束 1.返回顶部 1. SQL UNIQUE 约束 UNIQUE 约束唯一标识数据库表中的每条记录. UNIQUE 和 PRIM ...
- node-sass 安装失败解决方案
从失败到成功,尝试了不下20,最终终于解决了: 解决方案如下: 参考方案一:http://www.jianshu.com/p/89f5e094b8ce(具体的配置看这个) 参考方案二:http://b ...
- react 组件创建
/** * 数据屏蔽 * Created by 2016-12-02. */ import React, {Component} from 'react'; export default class ...
- Apache Spark大数据分析入门(一)
摘要:Apache Spark的出现让普通人也具备了大数据及实时数据分析能力.鉴于此,本文通过动手实战操作演示带领大家快速地入门学习Spark.本文是Apache Spark入门系列教程(共四部分)的 ...