分类目录归档:Docker

容器内的时间是否会与主机时间自动同步 ?


容器内的时间是否会与主机时间自动同步,取决于容器的运行环境和配置方式。以下是不同容器技术(如Docker、Kubernetes)的常见情况及原理分析:

一、Docker 容器的时间同步机制

1. 默认情况:不自动同步

  • Docker容器默认会继承主机的时间配置(如时区、时间戳),但不会主动与主机时间保持实时同步
  • 原因:容器本质上是隔离的进程环境,时间由容器内的操作系统维护,主机时间变化不会自动传递到容器内。

2. 时间同步的实现方式

  • 挂载主机时区文件
    通过 -v /etc/localtime:/etc/localtime:ro 命令挂载主机时区文件,确保容器时区与主机一致,...

Read more

docker 删除None 镜像


要删除所有标签为 <none> 的 Docker 镜像(悬空镜像),可以使用以下命令:

推荐命令(安全高效):

docker image prune -f

命令详解:

  1. docker image prune:Docker 自带的清理命令,专门用于删除悬空镜像(未被任何容器引用的中间层镜像)。
  2. -f--force:跳过确认提示,直接删除。

备选方案(手动过滤删除):

如果仍需删除所有包含 <none> 标签的镜像(谨慎使用,可能误删依赖项):

docker rmi $(docker images -f "dangling=true"...

Read more

docker-run- entrypoint


在 Docker 中替换容器的 ENTRYPOINT 可以通过多种方式实现,以下是详细的解决方案和示例:


🔧 方法 1:docker run 时临时替换(推荐)

使用 --entrypoint 参数覆盖默认入口点:

# 基本语法
docker run --entrypoint="新入口点命令" [其他选项] 镜像名 [参数]

# 示例:将 nginx 容器的入口点改为 /bin/bash
docker run -it --rm --entrypoint="/bin/bash" nginx:alpine

# 示例:使用脚本作为入口点
docke...

Read more

docker 镜像导出-


在Docker中,导出镜像通常用于将镜像保存到文件,以便在其他环境中导入使用。以下是导出镜像的两种常见方法:

方法一:使用docker save导出镜像

docker save命令用于将一个或多个镜像打包为一个tar文件,保留镜像的所有层和元数据。

步骤: 1. 查看本地镜像列表
bash docker images 找到需要导出的镜像的REPOSITORYTAG(或IMAGE ID)。

  1. 导出镜像到tar文件
    bash docker save -o <输出文件名.tar> <镜像名:标签> # 示例: docker save -o...

Read more

docker-aktools


本地构造镜像及使用

可以通过 Dockerfile 文件进行本地镜像的构造,通过下载仓库中:https://github.com/akfamily/aktools/blob/main/Dockerfile 文件到本地后,

通过 docker build -t aktools:v1 . 命令来构建镜像,

并通过 docker run -p 8080:8080 aktools:v1 来启动镜像,

如需要后台运行则通过 docker run -d -p 8080:8080 aktools:v1 来进行启动。

最后通过访问 http://127.0.0.1:8080/api/public/sto...

Read more

docker-容器拥有和宿主机同网段IP-macvlan


要让 Docker 容器拥有和宿主机同网段的 IP,通常可以使用 macvlan 网络驱动来实现。macvlan 允许你为容器分配直接连接到物理网络的 MAC 地址和 IP 地址,从而让容器像是网络中的独立设备一样。以下是具体步骤:

1. 创建 macvlan 网络

首先,你需要确定宿主机的网络接口名称,例如 eth0。然后使用以下命令创建一个 macvlan 网络:

docker network create -d macvlan \
  --subnet=192.168.1.0/24 \
  --gateway=192.168.1.1 \
  -o parent=eth0 \
  m...

Read more

Docker-桥接网络模式-


在 Docker 中使用桥接网络模式并让容器拥有独立 IP 可以按以下步骤操作:

1. 创建自定义桥接网络

可以使用 docker network create 命令创建自定义的桥接网络,示例如下:

docker network create --driver bridge --subnet 172.18.0.0/16 my_bridge_network

在上述命令里: - --driver bridge:指定使用桥接网络驱动。 - --subnet 172.18.0.0/16:设定自定义网络的子网范围。 - my_bridge_network:为自定义网络命名。

2. 运行容器并指...

Read more

加载镜像-docker


在 Docker 里,你可以使用docker load命令加载之前保存成 tar 文件的镜像。此命令的基本语法如下:

docker load -i <path_to_tar_file>

下面是关于此命令的详细解释: - -i或者--input:用来指定要加载的 tar 文件的路径。

下面是一个具体的示例:

docker load -i my_image.tar

此命令会把my_image.tar文件里的镜像加载到 Docker 环境中。

如果你想了解这个命令的更多参数,可以通过下面的命令查看帮助文档:

docker load --help

Read more