Docker 镜像的制作

假如想象 提交于 2019-12-17 22:54:49

    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)的制作

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!