docker积累

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
日志服务 SLS,月写入数据量 50GB 1个月
简介: 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;
相关文章
|
8月前
|
SQL 数据库连接 数据库
在C++的QT框架中实现SQLite数据库的连接与操作
以上就是在C++的QT框架中实现SQLite数据库的连接与操作的基本步骤。这些步骤包括创建数据库连接、执行SQL命令、处理查询结果和关闭数据库连接。在实际使用中,你可能需要根据具体的需求来修改这些代码。
488 14
|
9月前
|
机器学习/深度学习 算法 机器人
强化学习:时间差分(TD)(SARSA算法和Q-Learning算法)(看不懂算我输专栏)——手把手教你入门强化学习(六)
本文介绍了时间差分法(TD)中的两种经典算法:SARSA和Q-Learning。二者均为无模型强化学习方法,通过与环境交互估算动作价值函数。SARSA是On-Policy算法,采用ε-greedy策略进行动作选择和评估;而Q-Learning为Off-Policy算法,评估时选取下一状态中估值最大的动作。相比动态规划和蒙特卡洛方法,TD算法结合了自举更新与样本更新的优势,实现边行动边学习。文章通过生动的例子解释了两者的差异,并提供了伪代码帮助理解。
679 2
|
数据可视化 数据挖掘 Python
跟着Nature学作图:R语言ggplot2作图展示基因和转座子的相对位置
跟着Nature学作图:R语言ggplot2作图展示基因和转座子的相对位置
|
人工智能 测试技术 iOS开发
微软Phi-3,3.8亿参数能与Mixtral 8x7B和GPT-3.5相媲美,量化后还可直接在IPhone中运行
Phi-3系列是微软推出的一系列高效语言模型,旨在在移动设备上实现高性能。该系列包括 Phi-3-mini(38亿参数)、Phi-3-small 和 Phi-3-medium,它们在保持紧凑的同时,性能媲美GPT-3.5和Mixtral。模型通过精心筛选的数据集和优化训练策略,如数据最优化和阶段训练,实现高效能。 Phi-3-mini可在iPhone 14上运行,占用约1.8GB内存。这些模型在多个基准测试中展现出色性能,推动了AI在移动设备上的应用,增强了用户隐私和体验。虽然目前仅发布技术报告,但源代码和权重即将开放下载。
421 1
|
JavaScript 开发者
三个小时vue3.x从零到实战(vue3.x经典案例46个)
该文章提供了46个Vue 3.x的经典案例,通过实际代码示例帮助开发者更好地理解和运用Vue 3.x的各项功能和技术。
2480 0
|
开发框架 前端开发 JavaScript
在Winform程序中增加隐藏的按键处理,用于处理一些特殊的界面显示或者系统初始化操作
在Winform程序中增加隐藏的按键处理,用于处理一些特殊的界面显示或者系统初始化操作
|
架构师 安全 区块链
带你读《自主管理身份:分布式数字身份和可验证凭证》——第5章 SSI架构:大局观(1)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第5章 SSI架构:大局观(1)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第5章 SSI架构:大局观(1)
|
XML 编解码 数据格式
python二进制程序打包为 mac app(dmg)-材料准备
python二进制程序打包为 mac app(dmg)-材料准备
python二进制程序打包为 mac app(dmg)-材料准备
|
机器学习/深度学习 网络协议 数据建模
世界各国浏览器语言代码本地化对照表
世界各国浏览器语言代码本地化对照表
|
SQL Java 数据库连接
Hibernate -双向一对一关联关系映射
Hibernate -双向一对一关联关系映射
115 0