![](/img/trans.png)
[英]What is the meaning of mounting /dev/sda1 to /etc/hosts in Docker container
[英]docker container seems to have failing /etc/hosts until an _interactive_ docker start
如果我在交互式終端中“docker-compose start service”(不是-it,而是以交互方式在主機上運行bash),我的服務就會愉快地初始化。
但是,如果我將相同的命令放在shell腳本中,它就會失敗。
我懷疑問題是通過/ etc / hosts進行名稱解析; 它似乎以交互方式工作,但由於某種原因不在腳本中。 我希望容器能夠看到主機的/ etc / hosts中定義的名稱。 雖然我在Linux Mint 19.1上,但我需要它在Windows,Mac和Linux上工作。
我試過的東西不起作用:
但是如果我在我的腳本中拋出一個/ bin / bash -i,並且回顯說明了要鍵入的命令,它就可以了!
我正在使用:
docker version 18.09.6, build 481bc77
docker-compose version 1.24.0, build 0aa59064
我必須從我的管理層那里得到一個好的分享,而不是分享小代碼片段。
為了自動化,我希望服務通過docker-compose up -d或至少docker-compose start啟動 - 在腳本中。
容器內的錯誤消息(來自docker logs -f service)如下所示:elasticsearch.exceptions.ConnectionTimeout:ConnectionTimeout由 - ReadTimeoutError引起(HTTPConnectionPool(host = u'elasticsearch',port = 9200):讀取超時。(讀取超時) = 10))
我有時會看到彈性搜索中的高負荷,這看起來有點奇怪。 我認為8核(可能是超線程)可能高達490%。 更常見的是,它下降了大約5-15%。
這是一個SSCCE:
#!/bin/bash
set -eu
set -o pipefail
set -x
docker stop elasticsearch || true
docker-compose start elasticsearch
# Give elasticsearch some time to come up.
# Normally I use a small REST client that calls ES until it starts responding - but that wouldn't be self-contained.
sleep 120
docker stop service || true
docker-compose start service
腳本本身運行完成正常,但隨后“服務”退出應該。
謝謝!
如果我理解正確,您希望elasticsearch
容器為您的service
容器提供service
(即兩個容器彼此聯系),因此, service
容器需要知道elasticsearch
的IP地址。
在這種情況下,docker-compose將管理容器地址,您需要做的是將該信息作為環境變量存儲在服務容器中。 它的優點是,你可以使用相同的命令啟動兩個容器(只是docker-compose up -d
)。 例如:
services:
elasticsearch:
image: YOUR_ELASTICSEARCH_IMAGE
ports:
- 9200:9200
service:
image: YOUR_SERVICE_IMAGE
environment:
- ELASTICSEARCH_HOST=elasticsearch
如果容器之間存在依賴關系並且elasticsearch
容器需要一些時間來啟動,那么您可以在啟動時在service
中放置sleep語句或使用31746182中的解決方案
似乎docker-compose有時真的想要在pty上運行而不是直接/正常地從腳本運行。 我想這可能會以某種方式與我正在開始的容器的內容有關,而不是與docker本身有關。
無論如何,信不信由你,像我一樣(例如):
script -q -c "docker-compose up -d \"elasticsearch\"" /dev/null
......解決了這個問題。
很奇怪,我知道,但我目前還沒打算弄明白為什么。 我很高興它正在工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.