• docker镜像(第二天)


    进入当前正在运行的容器

    # 我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置

    #命令

    docker -exec -it 容器id  bashShell

     #方式二

    docker attach 容器id

     正在执行当前的代码

    #docker exec   进入容器后开启一个新的终端,可以在里面操作

    #docker attach  进入容器正在执行的终端,不会启动新的进程!

    从容器内拷贝文件到主机上

    容器中相当于一个小的虚拟机,主机相当于一个大的虚拟机

    docker cp 容器id:容器内路径 目的地主机路径

    docker cu 容器id:/home/cxk.java /home 复制到了主机home目录

     #拷贝是一个手动过程,未来我们使用 -v卷的技术,可以实现

     

     接下来就是一些的练习

    docker 安装linux

    1.搜索镜像  search nginx  建议去docker搜索,可以看到帮助文档

    2.下载镜像   pull 

    3.运行测试

    端口暴露的概念:其实就是通过外网端口3344 访问内网中容器80端口

     练习二:docker 来装一个tomcat 

    # 官方的使用

    docker run -it --rm tomcat:9.0

    #我们之前的启动都是后台,停止了容器之后,容器还是可以查到

    docker run -it --rm 一般用来测试,用完及删除

    #下载在启动

    docker pull tomcat 

    #启动运行

    docker run -d -p 3355:8080 --name tomcat01 tomcat  -

    -d以后台方式 运行   -p暴露端口

    进入容器

    docker exec -it tomcat01 /bin/bash

    发现问题, linux命令少了  没有webapps   阿里云镜像的原因,默认是最小的镜像,所有不必要的都剔除掉        

    作业:部署es+kibana

    es 暴露的端口很多

    es 十分的耗内存

    es 的数据一般需要防止到安全目录!挂载 

    # --net somenetwork ? 网络配置,以后会讲

    #启动

    docker run -d --name elasticsearch -p 9200:9200 -p9300:9300 -e"discovery.type=single-node" elasticsearch:7.6.2

    #启动了 linux就很卡   docker stats 查看 cpu的状态

    es是十分耗内存的 

    测试一下es是否成功了(查看暴露的端口)

     docker stats果然消耗内存

     ctrl+c退出

    赶紧关闭,增加内存的限制,修改配置文件 -e环境配置修改 

    docker run -d --name elasticsearch -p 9200:9200 -p9300:9300 -e"discovery.type=single-node" -e Es_JAVA_OPTS="-Xms64m -Xmx512m"elasticsearch:7.6.2

    使用kibana链接es?  思考网络如何才能链接过去 

     可视化

    什么是 portainer?

    Docker图形化界面管理工具!提供一个后台面板供我们操作

    docker run -d -p 8080:9000 \ --restart=always -v /var/run/docker.sock://var/run/docker.sock --privileged=true portainer/portainer

    然后访问网址进行一个可视化面板操作

    Docker镜像讲解

    镜像是什么

    镜像是一种 轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。

    所有的应用,直接打包docker镜像,就可以直接跑起来!

    如何得到镜像

    从远程仓库下载

    朋友拷贝给你

    自己制作一个镜像DockerFile

    Docker镜像加载原理

    unionFs  (联合文件系统)是一种分层、轻量级并且高性能的文件系统,支持修改一次提交来一层层叠加。

    也就是如果 底层需要下载centos而已经下载过了,就可以直接用里面的

    特点

    docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部!

    这一层就是我们通常说的容器曾,容器之下的都叫镜像层!

    如何提交一个自己的镜像

    commit镜像 

    docker commit 提交容器成为一个新的副本

    # 命令和git原理累死

    docker commit -m="提交的描述信息" -a ="作者" 容器id 目标镜像名[TAG]

     呃呃呃实战自己做dockerfile镜像,有个地方卡住了,太困了明天继续

    我是因为 8080端口换成3344就可以了

    docker run -it -p 8080:8080 tomcat    交互 暴露端口

    继续

    实战测试

    #1.启动一个默认的tomcat 

    #2.发现这个默认的tomcat 是没有webapps应用,镜像的原因,官方的镜像默认webapps下面是没有文件的!

    #3.是我自己拷贝进去了基本的文件

    #4.将我们操作过的容器通过commit提交为一个镜像!这就是我们自己修改的镜像

    如果你想要保存当前容器的状态,就可以通过commit来提交,获得一个镜像

    就好比我们以前学习vm种的快照  

    加油! 

  • 相关阅读:
    Settings属性读写
    [附源码]计算机毕业设计JAVA本科毕业设计过程管理系统
    【unity】制作一个角色的初始状态(左右跳二段跳)【2D横板动作游戏】
    Vue基础(九)——ElementUI
    Spring学习|使用JavaConfig实现bean配置、代理模式:静态代理模式、动态代理模式(通俗易懂)
    大数据分析与开发就业保障班
    day1- day6
    MySQL——事务和视图
    主流报表开发工具有FastReport.NET V2022.3正式发布——支持SkiaSharp
    智能化物流管理:全国快递物流查询API的角色与优势
  • 原文地址:https://blog.csdn.net/qq_62046696/article/details/126713107