Docker(四)容器相关操作及问题处理

目录

一、进入、退出容器操作

二、查看Docker 容器的配置文件

方法一:进入docker容器内进行查看

方法二:通过数据卷挂载方式查看配置文件

方法三:使用Docker可视化工具查看配置文件

三、容器与宿主机时间同步

方法一:创建启动容器时共享宿主机的localtime

方法二:复制宿主机的localtime

1、宿主机直接执行命令:将时间同步给指定容器

2、登录容器同步时区timezone

方法三:创建DockerFile文件的时候,自定义该镜像的时间格式及时区


一、进入、退出容器操作

1、进入容器

  1. 首先,通过docker ps命令查看正在运行的容器列表,找到目标容器的 CONTAINER ID 或 NAMES 
  2. 使用以下命令进入到容器内部:
docker exec -it <container_id_or_name> /bin/bash

2、退出容器

操作方式描述
exit使用 exit 命令退出容器
Ctrl+D使用 Ctrl+d 快捷键退出容器

二、查看Docker 容器的配置文件

方法一:进入docker容器内进行查看

  1. 通过 docker exec 命令进入容器内 
  2. 进入容器后,使用ls命令查看容器内的文件和目录结构。
  3. 根据项目的具体目录结构和配置文件位置,使用catvi等命令查看和编辑配置文件
进入容器
docker exec -it <container_id_or_name> /bin/bash

查询目录
ls -l

方法二:通过数据卷挂载方式查看配置文件

  1. 如果配置文件是通过数据卷挂载到容器中的,可以直接通过本地文件系统查看配置文件。
  2. 使用以下命令查看数据卷挂载情况:
docker inspect <container_id_or_name>

在输出结果中找到Mounts字段,查看挂载的数据卷信息。根据挂载路径,在本地文件系统中找到对应的配置文件。

使用文本编辑器或终端命令查看和编辑配置文件。

方法三:使用Docker可视化工具查看配置文件

除了命令行方式外,也可以使用一些Docker可视化工具来方便地查看Docker项目的配置文件和其他信息。常见的Docker可视化工具有 Portainer、Kitematic 等,通过这些工具可以直观地查看容器中的文件和配置信息。 通过以上方法,我们可以方便地查看Docker项目中的配置文件,以便进行必要的调试和修改操作。

三、容器与宿主机时间同步

问题:如果在启动Docker容器的过程中没有单独配置 localtime,很可能造成 Docker 容器时间与主机时间不一致的情况,比如 UTC 和 CST 相差8小时

通过 date 命令:发现两者之间的时间相差了八个小时!
宿主机采用了CST时区,CST是指(China Shanghai Time,东八区时间)
容器采用了UTC时区,UTC是指(Coordinated Universal Time,标准时间) 

宿主机查询时间
[root@VM-4-14-centos ~]# date
Tue May 21 11:32:36 CST 2024


进入容器查询时间
[root@VM-4-14-centos ~]# docker exec -it f77618fa6e0c /bin/bash
root@f77618fa6e0c:/data# date
Tue May 21 03:33:20 UTC 2024

方法一:创建启动容器时共享宿主机的localtime

创建容器时,挂载localtime文件到容器内

创建容器命令 run 时增加相关参数:-v /etc/localtime:/etc/localtime

创建容器的时候指定启动参数,挂载localtime文件到容器内,保证两者所采用的时区是一致的

docker run -d --name <容器ID或者NAME> \
-v /etc/localtime:/etc/localtime \
-p <主机(宿主)端口>:<容器端口> \
<本地镜像仓库下载的镜像名-REPOSITORY>:<需要的版本号-TAG>

 例如:下面redis的启动命令

docker run -d --name redis-5.0.14 -p 6379:6379 -v /etc/localtime:/etc/localtime redis:5.0.14

方法二:复制宿主机的localtime

1、宿主机直接执行命令:将时间同步给指定容器

docker cp:用于容器与主机之间的数据拷贝 

执行命令(作用相同):

docker cp /etc/localtime <容器ID或者NAME>:/etc/

docker cp /usr/share/zoneinfo/Asia/Shanghai <容器ID或者NAME>:/etc/localtime

执行命令
[root@VM-4-14-centos ~]# docker cp /etc/localtime <容器ID或者NAME>:/etc/
 
然后再登陆容器,查看时间,发现已经跟宿主机时间同步了
[root@VM-4-14-centos ~]# docker exec -it <容器ID或者NAME> /bin/bash
root@f3a11c61d13f:/# date                                                                                                                    
Tue May 21 17:16:46 CST 2024

如果遇到问题:出现下面报错信息

Error response from daemon: Error processing tar file(exit status 1): invalid symlink "/etc/localtime" -> "../usr/share/zoneinfo/Asia/Shanghai"

就更换命令

执行命令
[root@VM-4-14-centos ~]# docker cp /usr/share/zoneinfo/Asia/Shanghai <容器ID或者NAME>:/etc/localtime

然后再登陆容器,查看时间,发现已经跟宿主机时间同步了
[root@VM-4-14-centos ~]# docker exec -it <容器ID或者NAME> /bin/bash
root@f3a11c61d13f:/# date                                                                                                                    
Tue May 21 17:16:46 CST 2024

2、登录容器同步时区timezone

注:这种在容器中运行程序的方式,时间不一定能更新过来,有时需重启容器 docker restart  <容器ID或者NAME>

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

方法三:创建DockerFile文件的时候,自定义该镜像的时间格式及时区

在dockerfile文件里添加下面内容

......
FROM tomcat
ENV CATALINA_HOME /usr/local/tomcat
.......
#设置时区
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

保存后,利用 docker build 命令生成镜像使用即可,使用dockerfile创建的镜像的容器改变了容器的时区,
这样不仅保证了容器时间与宿主机时间一致(假如宿主机也是CST),并且像上面使用tomcat作为父镜像的话,JVM的时区也是CST,
这样tomcat的日志信息的时间也是和宿主机一致的,像上面那两种方式只是保证了宿主机时间与容器时间一致,JVM的时区并没有改变,tomcat日志的打印时间依旧是UTC

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/641702.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java抽象类,接口,枚举练习题

第一题&#xff1a; 答案&#xff1a; class Animal{//成员变量protected String name;protected int weight;//构造方法public Animal(){this.name"refer";this.weight50;}public Animal(String name,int weight){this.namename;this.weightweight;}//成员方法publ…

R可视化:可发表的Y轴截断图

Y轴截断图by ggprism Y轴截断图by ggprism 介绍 ggplot2绘制Y轴截断图by ggprism加载R包 knitr::opts_chunk$set(message = FALSE, warning = FALSE)library(tidyverse) library(ggprism) library(patchwork)rm(list = ls()) options(stringsAsFactors = F) options(future.…

回溯大法总结

前言 本篇博客将分两步来进行&#xff0c;首先谈谈我对回溯法的理解&#xff0c;然后通过若干道题来进行讲解&#xff0c;最后总结 对回溯法的理解 回溯法可以看做蛮力法的升级版&#xff0c;它在解决问题时的每一步都尝试所有可能的选项&#xff0c;最终找出所以可行的方案…

redis中String,Hash类型用法与场景使用

String 用法 1. 设置键值对 &#xff08;1&#xff09;设置键值对使用 set 命令设置 key 的值。 返回值&#xff1a;ok&#xff0c;如果 key 已经存在&#xff0c;set 命令会覆盖旧值。 &#xff08;2&#xff09;使用 setex 命令设置 key 的值并为其设置过期时间&#xff…

短剧APP开发,短剧行业发展下的财富密码

今年以来&#xff0c;短剧市场展现出了繁荣发展的态势&#xff0c;成为了一个风口赛道。 短剧具有不拖沓、时长短、剧情紧凑等优势&#xff0c;顺应了当代人的生活&#xff0c;是当代人的“电子榨菜”。 短剧的快速发展同时也带动了新业态新模式的发展&#xff0c;短剧APP就是…

鸿蒙OS开发:【一次开发,多端部署】(一多天气)项目

一多天气 介绍 本示例展示一个天气应用界面&#xff0c;包括首页、城市管理、添加城市、更新时间弹窗&#xff0c;体现一次开发&#xff0c;多端部署的能力。 1.本示例参考一次开发&#xff0c;多端部署的指导&#xff0c;主要使用响应式布局的栅格断点系统实现在不同尺寸窗…

“等保测评与安全运维的协同:保障企业网络安宁

"等保测评与安全运维的协同&#xff1a;保障企业网络安宁"是一个涉及信息安全领域的重要话题。这里&#xff0c;我们可以从几个方面来探讨这个主题。 1. 等保测评&#xff08;等级保护测评&#xff09; 等保测评&#xff0c;即信息安全等级保护测评&#xff0c;是依…

WordPress 发布了独立的 SQLite 插件

之前 WordPress 在官方的 Performance Lab 插件实现 SQLite 模块&#xff0c;现在重构 SQLite 的实现&#xff0c;并且将其发布成一个独立的插件&#xff1a;SQLite Database Integration。 独立 SQLite 插件 最初的功能模块实现是基于 aaemnnosttv 的 wp-sqlite-db 插件修改实…

SEO优化,小白程序员如何做SEO优化流量从0到1

原文链接&#xff1a;SEO优化&#xff0c;小白程序员如何做SEO优化流量从0到1 1、SEO是什么&#xff1f; SEO即&#xff1a;搜索引擎优化(Search Engine Optimization)&#xff0c;是一种通过优化网站结构、内容和外部链接等因素&#xff0c;提高网站在搜索引擎中的自然排名&…

某神,云手机启动?

某神自从上线之后&#xff0c;热度不减&#xff0c;以其丰富的内容和独特的魅力吸引着众多玩家&#xff1b; 但是随着剧情无法跳过&#xff0c;长草期过长等原因&#xff0c;近年脱坑的玩家多之又多&#xff0c;之前米家推出了一款云某神的app&#xff0c;目标是为了减少用户手…

Unity 自定义Web GL 发布模板

前言 使用讯飞语音识别时&#xff0c;发布Web GL 平台后需要在index.html 中添加相应的script 标签&#xff0c;但每次发布完添加比较麻烦&#xff0c;添加一个发布模板就可以不必每次发布完再手动添加修改。 实现 在Assets 文件夹下新建一个文件夹&#xff0c;重命名为WebG…

SpringCloud系列(22)--Ribbon默认负载轮询算法原理及源码解析

前言&#xff1a;在上一篇文章中我们介绍了如何去切换Ribbon的负载均衡模式&#xff0c;而本章节内容则是介绍Ribbon默认负载轮询算法的原理。 1、负载轮询算法公式 rest接口第N次请求数 % 服务器集群总数 实际调用服务器下标&#xff08;每次服务器重启后rest接口计数从1开始…

分享:大数据风险检测报告,哪里查询比较好?

随着大数据技术的发展&#xff0c;逐渐被运用到各个领域&#xff0c;基于大数据技术的个人风险检测也就是我们常说的大数据报告在金融环境中运用的十分普遍&#xff0c;那大数据风险检测报告哪里查询比较好呢?本文就为大家简单介绍一下。 大数据风险检测报告查询能查到什么? …

超大Sql文件切分工具SQLDumpSplitter —— 筑梦之路

官网&#xff1a;PLB PLB - SQLSplitter 用于将大型MySQL转储拆分为可独立执行的小型SQL文件。 显示100%时并不是已经处理完了&#xff0c;而是才开始 优点 软件程序小巧&#xff0c;不需要安装&#xff0c;直接点击运行就可以最厉害的是SQLDumpSplitter可以自动将结构语句&…

基于放射组学的深度学习用于左心房CT图像中房颤亚型的分类

文章目录 Radiomics-Informed Deep Learning for Classification of Atrial Fibrillation Sub-Types from Left-Atrium CT Volumes摘要方法实验结果 Radiomics-Informed Deep Learning for Classification of Atrial Fibrillation Sub-Types from Left-Atrium CT Volumes 摘要…

多微信如何高效管理?一台电脑就能搞定!

对于有多个微信号的人来说&#xff0c;管理这些微信无疑是一道难题。 今天&#xff0c;就给大家分享一个能够让你高效管理多个微信号的神器——个微管理系统&#xff0c;下面&#xff0c;就一起来看看它都有哪些功能吧&#xff01; 1、多号同时登录在线 系统支持多个微信号同…

EI数据库如何出具中文论文检索报告?

Ei Compendex数据库是全球最全面的工程检索二次文献数据库&#xff0c;它收录了7,000,000多篇论文的参考文献和摘要。这些论文出自5,000多种工程类期刊、会议论文集和技术报告。Ei Compendex收录的文献涵盖了所有的工程领域&#xff0c;其中大约22%为会议文献&#xff0c;90%的…

在线人才测评在企业招聘和大学生求职中的应用场景

每年的春招秋招&#xff0c;都是毕业生们忙着找工作的季节&#xff0c;相比社招来说&#xff0c;春招秋招是每个毕业生务必重视的机会&#xff0c;大厂名企毕竟名额有限&#xff0c;如果找到自己心仪的职业岗位&#xff0c;作为毕业生就必须提前准备&#xff0c;深入了解招聘的…

YOLOv8独家改进:mamba系列 | 视觉态空间(VSS)块结合C2f二次创新,提升捕捉广泛的上下文信息 | VMamba2024年最新成果

💡💡💡创新点:Mamba UNet采用了纯基于视觉Mamba(VMamba)的编码器-解码器结构,融入了跳跃连接,以保存网络不同规模的空间信息。这种设计有助于全面的特征学习过程,捕捉医学图像中复杂的细节和更广泛的语义上下文。我们在VMamba块中引入了一种新的集成机制,以确保编…

百度集团:AI重构,走到哪了?

内有自家公关一号“自曝”狼性文化&#xff0c;主动制造舆论危机。 外有&#xff0c;OpenAI、谷歌、字节、华为等大模型劲敌扎堆迭代新产品&#xff0c; 强敌环伺。 今天我们要说的是早就从BAT掉队的——百度。 最近&#xff0c;在武汉Aapollo Day 2024上&#xff0c;百度发布了…