docker积累

简介: docker积累

一、容器

  • 清理停止的容器: docker container prune
  • 容器错误日志
例:实时查看docker容器名为user-uat的最后10行日志
docker logs -f -t --tail 10 user-uat
例:查看指定时间后的日志,只显示最后100行:
docker logs -f -t --since="2018-02-08" --tail=100 user-uat
例:查看最近30分钟的日志:
docker logs --since 30m user-uat
例:查看某时间之后的日志:
docker logs -t --since="2018-02-08T13:23:37" user-uat
例:查看某时间段日志:
docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" user-uat
例:将错误日志写入文件:
docker logs -f -t --since="2018-02-18" user-uat | grep error >> logs_error.txt

二、docker基础

2.1、一个web应用

  • 使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息

docker底层信息Json串

  • 与其它容器(DB容器)互联
  • 与数据库容器互联
  • docker run -d --name db training/postgres(运行一个数据库 名字为db)
  • docker run -d -p 5001:5000 --name web --link db:db training/webapp python app.py(db 容器和 web 容器建立互联关系
  • --link 参数的格式为 --link name:alias,其中 name 是要链接的容器的名称,alias 是这个连接的别名。
  • Docker 在两个互联的容器之间创建了一个安全隧道,而且不用映射它们的端口到宿主主机上。在启动 db 容器的时候并没有使用 -p 和 -P 标记,从而避免了暴露数据库端口到外部网络上。

2.2、数据卷和数据管理

数据卷(Data Volume)是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:

  • 数据卷可以在容器之间共享和重用
  • 对数据卷的修改会立马生效
  • 对数据卷的更新,不会影响镜像
  • 卷会一直存在,直到没有容器使用

2.2.1、建一个数据卷

在用 docker run 命令的时候,使用 -v 标记来创建一个数据卷并挂载到容器里。在一次 run 中多次使用可以挂载多个数据卷。

下面创建一个 web 容器,并加载一个数据卷到容器的 /webapp3 目录。

[root@yang data]# docker run -d -p 5001:5000 --name web -v /opt/docker/data:/opt/webapp3 training/postgres 
5374b215ef017b4c256f48dc2228aa726046cb7179067518e3e67e999668ab37

我们看下容器内部是否生成/webapp3目录

[root@yang test]# docker exec -it 5374b215ef01 /bin/bash
root@5374b215ef01:/# cd opt/        
root@5374b215ef01:/opt# ls
webapp3
root@5374b215ef01:/opt# 

*注意:也可以在 Dockerfile 中使用 VOLUME 来添加一个或者多个新的卷到由该镜像创建的任意容器。

挂载一个主机目录作为数据卷

使用 -v 标记也可以指定挂载一个本地主机的目录到容器中去。

[root@yang data]# docker run -d -p 5001:5000 --name web -v /opt/docker/data:/opt/webapp3 training/postgres 
5374b215ef017b4c256f48dc2228aa726046cb7179067518e3e67e999668ab37

上面的命令加载主机的 /opt/docker/data 目录到容器的 /opt/webapp3 目录。本地目录的路径必须是绝对路径,如果目录不存在 Docker 会自动为你创建它

*注意:Dockerfile 显然是不支持这种用法,这是因为 Dockerfile 是为了移植和分享用的, 因为不同操作系统的路径格式不一样,所以目前还不能支持。

我们删除容器,主机上数据是不会被删除的

2.3、镜像的导入导出

https://www.jb51.net/article/249787.htm

2.4、Dockerfile部署nginx

  • 在同一个文件夹中需要有这三个东西
  • Dockerfile、index.html、run.sh
  • Dockerfile
# 设置基础镜像
FROM centos:centos7.5.1804
# 作者信息
MAINTAINER SoftLeaderGy DU<826044698@qq.com>
# 安装第三方yum源
RUN yum -y install epel-release
#更新
RUN yum makecache
# 安装
RUN yum -y install wget net-tools
RUN yum -y install nginx
# 暴露80、443端口
EXPOSE 80
EXPOSE 443
RUN echo "daemon off;">>/etc/nginx/nginx.conf
# 切换工作目录
WORKDIR /root/nginx/
ADD index.html /usr/share/nginx/html/index.html
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]
  • run.sh
#!/bin/bash
/usr/sbin/nginx
  • index.html
  • 在当前目录下执行docker build -t nginx:new . 进行打包构建
  • docker imanges 查看镜像即可
  • 启动镜像
docker run --name nginxnew -p 80:80 -p 443:443 
-v /opt/docker/server/nginx/conf.d/:/etc/nginx/conf.d 
-v /opt/docker/server/nginx/html/:/usr/share/nginx/html 
-v /opt/docker/server/nginx/log/:/var/log/nginx 
-d --restart always nginx:new
  • 导出镜像
docker save -o nginx:new.tar nginx:new
  • 导入镜像
docker load -i nginx:new.tar

2.5、docker安装部署es

sudo docker run --name elasticsearch -p 9200:9200  -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms84m -Xmx512m" \
-v /opt/docker/server/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /opt/docker/server/elasticsearch/data:/usr/share/elasticsearch/data \
-v /opt/docker/server/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.12.0
相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
4月前
|
物联网
LoRA、全参、QLoRA:显存占用结构对比
本文深入剖析大模型微调中显存占用的本质,指出LoRA、全参、QLoRA的差异不在参数量,而在“哪些组件必须常驻显存”。系统拆解显存四大构成:参数、梯度、优化器状态、中间激活,揭示三者各自保留/舍弃/压缩的部分,并强调:**激活(activations)才是OOM主因,而所有方案对此几乎无改善**。破除“换方案即省显存”误区,推动显存问题工程化诊断。
|
7月前
|
机器学习/深度学习 人工智能 搜索推荐
当情绪也能被“量化”:数据如何悄悄改变心理健康分析与治疗
当情绪也能被“量化”:数据如何悄悄改变心理健康分析与治疗
770 14
|
3月前
|
自然语言处理 搜索推荐 BI
企业级 Agent 解决方案
瓴羊企业级Agent解决方案以AgentOne为智能中枢,打通数据孤岛、工具链断裂与业务闭环缺失三大痛点,构建“感知-决策-执行-反馈”全链路数智闭环。集成Quick Service、智能小Q、Quick Audience及Dataphin四大专业智能体,实现服务、分析、营销与数据治理的全域协同。(239字)
|
3月前
|
人工智能 弹性计算 机器人
基于 OpenClaw 4 步构建 AI 员工
本方案基于OpenClaw),通过4步命令行部署,快速打造7×24小时在线的钉钉AI员工。支持群聊@和私聊交互,可自动写稿排版、秒建网站、同步发布动态等,助力高效办公。
|
3月前
|
存储 SQL 关系型数据库
一文搞懂 MySQL 核心架构:Server 层与存储引擎全拆解
本文深入剖析MySQL核心架构,详解Server层(连接器、解析器、优化器、执行器)与存储引擎层(InnoDB内存/磁盘结构、事务ACID、MVCC、两阶段提交)的协同机制,并结合实战案例与Java代码,助开发者真正理解SQL执行全流程,高效解决慢查询、死锁、事务失效等生产问题。
629 1
|
人工智能 缓存 运维
探秘 AgentRun丨通过无代码创建的 Agent,如何用高代码进行更新?
AgentRun 打破 AI Agent 开发困局,无代码快速验证想法,一键转高代码实现深度定制。60 秒创建 Agent,支持多模型、工具集成与 Prompt 优化;业务增长后可平滑演进,保留配置生成高质量代码,助力从原型到生产的持续迭代。
474 31
|
6月前
|
传感器 人工智能 算法
校园服务机器人关键技术解析与选型
智慧校园中,服务机器人已升级为集导览、安防、教学辅助与数据管理于一体的智能终端。依托大模型、多传感器融合导航与情感计算技术,实现精准交互与自主决策。猎户星空、优必选、科大讯飞等品牌各具优势,满足多样化教育场景需求,推动AI赋能校园智能化转型。(238字)
|
Shell Linux Ubuntu
解决在SecurecCRT登录后,发现方向键、backspace(退格键)、delete(删除键)为乱码的问题
问题:使用securecrt ssh到linux之后,backspace(退格键),delete(删除键),以及4个方向键都为乱码,不能正常使用。按tab键也没有自动补全文件名。 即: 按Backspace(退格键)和delete(删除键)屏幕显示的是:^H 按方向键则屏幕显示的是:^[[A^[[B^[[C^[[D 环境: SecureCRT8.
4855 0
THW
|
6月前
|
存储 安全
BadUSB 攻击原理
BadUSB攻击通过将USB设备伪装成键盘等HID设备,利用系统对HID的信任,在连接电脑后自动模拟键盘输入执行恶意指令,从而绕过传统安全防护,实现无需用户操作的秒级入侵。
THW
646 0
|
Java 应用服务中间件 Apache
认识Tomcat的日志:catalina.out、localhost、manager、localhost_access_log
认识Tomcat的日志:catalina.out、localhost、manager、localhost_access_log