2015-12-09 34 views
0

我已经开始使用docker了,每当我启动一个容器时它都会提供一个ID,但是当容器停机并且新启动后,这个容器会以新ID开始,在这种情况下,数据/日志属于最后一次启动会丢失。这有可能修复容器ID吗?Docker container-ID在每次启动容器时都有变化

+0

理想情况下,容器是无状态的,你的数据/日志被映射到它从外面。然后你可以开始一个新的容器过程来拾取前一个中断的地方。 – Thilo

+0

实际上,当我装入数据/日志目录时,我所面对的日志和数据不会保存在本地主机上,所有日志/数据保存在容器中。如果你想看到你的日志,你必须找到容器ID,然后去容器的路径,你会发现数据和日志。如果您的容器在新启动时因任何原因而关闭,则容器ID将发生更改,并且旧数据将使用位于/ var/lib/docker/aufs/diff/Container-ID – anand

+0

中的旧容器ID保存。不要将日志和数据放入容器中。将其放入附加到容器的数据卷中。对于日志,您还可以将它们发送出去(通过标准输出或系统日志,或其他) – Thilo

回答

2

你的意思是容器名称?使用选项--name

以下是您启动容器时可以保留相同名称的示例。但你需要确保没有相同的容器正在运行。

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag 

第二,如果你需要管理日志,然后

  1. 创建一个单独的日志卷,并用容器安装它。
  2. 的日志导出到ELK/Splunk的

如果你现在需要一些解决方案,试试这个库

https://github.com/gliderlabs/logspout 
Log routing for Docker container logs 
+0

不是容器名称,我的意思是容器ID,当任何图像运行时Docker会生成容器ID。我们使用以下方法检查容器ID:docker ps 它提供有关运行容器和容器ID的信息。 – anand

+0

然后你的方向是错的。认为使用码头名称来管理。 – BMW

相关问题