• 镜像、容器、部署tomcat、修改容器为新镜像、容器卷


    docker镜像

    docker tomcat镜像530MB,官网的tomcat linux安装包9428KB,530*1024=542,720KB,docker下载的tomcat镜像比官网的tomcat体积大很多。
    因为docker镜像是基于UnionFS联合文件系统实现分层的,一个tomcat镜像由下向上层层相叠:centos、JDK、tomcat。
    主机磁盘上只保存一份base镜像,内存中也只加载一份base镜像,然后多个镜像都从相同的base镜像构建而来。比如下载,先用docker下载tomcat7,再用docker下载tomcat8,下载tomcat8时,前面的几个基础镜像就不需要下载了,内存磁盘都已经有了。


    docker容器

    docker镜像是只读的,不能修改。当把这个镜像启动为一个容器时,一个新的写入层被加载到镜像的顶部,这一层被叫为容器层,下面的叫镜像层。


    部署tomcat

    docker run -it -p 8888:8080 tomcat:jdk8
    docker run -d -p 8888:8080 tomcat:jdk8
    8080是容器内tomcat的端口号,8888是docker容器的端口号
    浏览器访问:http://192.168.0.105:8888/,第一次404找不到资源,因为webapps下没有任何文件,复制webapp.dist下的文件到webapp。


    修改容器为新的镜像

    docker commit -a="zrw" -m="add project" 004efbe2d4c3 tomcat:2.0


    容器卷

    容器卷的设计目的是数据持久化。将主机上的某个目录与容器的某个目录(也称为挂载点或卷)关联起来,容器挂载点的内容就是主机目录下的内容;修改主机上该目录的内容时,不需要同步容器,对容器来说是立即生效的;相反容器向挂载点写数据,也会立刻在主机某个目录生效,而不会写入到容器存储层。

    命令添加容器卷
    docker run -it -v /宿主机绝对目录:/容器内目录:ro 镜像名
    -v 添加容器卷 ro 容器内只读,不可修改
    查看数据卷是否挂载成功
    docker inspect

    DockerFile添加容器卷
    1、根目录下创建mydocker文件夹并进入
    2、新建DockerFile,内容
    FROM tomcat:2.0
    # 在容器端添加两个数据卷。考虑不同操作系统的宿主机文件系统的不同,会影响DockerFile的可移植性、分享性,DockersFile不支持指定宿主机目录,而是提供默认目录。
    VOLUME ["/containerdata1", "/containerdata2"]
    CMD echo "------------------------------successful------------------------------"
    CMD /bin/bash
    3、构建
    docker build -f /mydocker/DockerFile -t tomcat:3.0 .

    数据卷容器
    容器1指定数据卷目录,其它容器启动时通过参数"--volumes-from 容器1"继承容器1,以实现数据共享。
    docker run -it --name container1 tomcat:3.0
    docker run -it --name container2 --volumes-from container1 centos:7
    即使父容器挂掉了,子容器之间还可以实现完整的数据共享。

  • 相关阅读:
    卡特兰数
    poj3461 字符串匹配 熟悉kmp算法第一题
    hdu1018
    poj 1088
    Linux / OS X 实用命令
    Mac/Linux 定时运行命令行
    在Mac安装Scheme
    如何判断无向图有环
    Prime算法生成最小生成树
    无向图的深度优先与广度优先搜索代码实现
  • 原文地址:https://www.cnblogs.com/Mike_Chang/p/12964304.html
Copyright © 2020-2023  润新知